【问题标题】:Null Reference Exception in ASP.NET websiteASP.NET 网站中的空引用异常
【发布时间】:2016-05-12 16:18:02
【问题描述】:

我遇到了一个异常,它只出现在生产中而不是本地,

错误信息:

System.NullReferenceException:对象引用未设置为对象的实例。在 ASP.modules_header_ascx.__Render__control1(HtmlTextWriter __w, 控制 参数容器)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ASP.main_master.__Renderform1(HtmlTextWriter) 处的 ICollection 子项 __w, Control parameterContainer) 在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection 儿童)在 System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter 作家)在 System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter 输出)在 System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) 在 ASP.main_master.__Render__control1(HtmlTextWriter __w, 控制参数容器)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection 儿童)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection 孩子)在 System.Web.UI.Page.Render(HtmlTextWriter 作家)在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint)

和堆栈跟踪

在 ASP.modules_header_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ASP.main_master.__Renderform1(HtmlTextWriter) 处的 ICollection 子项 __w, Control parameterContainer) 在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection 儿童)在 System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter 作家)在 System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter 输出)在 System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) 在 ASP.main_master.__Render__control1(HtmlTextWriter __w, 控制参数容器)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection 儿童)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection 孩子)在 System.Web.UI.Page.Render(HtmlTextWriter 作家)在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint)

此错误不包含任何代码行号或任何特定信息。

父错误信息如下:

System.Web.HttpUnhandledException:异常类型 'System.Web.HttpUnhandledException' 被抛出。 ---> System.NullReferenceException:对象引用未设置为 目的。在 ASP.modules_header_ascx.__Render__control1(HtmlTextWriter __w, 控制参数容器)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection >children) 在 ASP.main_master.__Renderform1(HtmlTextWriter 控件 参数容器)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection >儿童)在
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter >writer)在 System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter 输出)在 System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) 在 ASP.main_master.__Render__control1(HtmlTextWriter __w, 控制 参数容器)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家, ICollection >儿童)在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter >writer, ICollection 子)在 System.Web.UI.Page.Render(HtmlTextWriter >writer) 在 System.Web.UI.Page.ProcessRequestMain(布尔>includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of >inner exception stack trace --- 在 System.Web.UI.Page.HandleError(异常 e) 在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint, >Boolean includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest(布尔 includeStagesBeforeAsyncPoint, System.Web.UI.Page.ProcessRequest() 处的布尔值 includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest(HttpContext 上下文) 在 ASP._404_page_aspx.ProcessRequest(HttpContext 上下文)在 System.Web.HttpApplication.CallHandlerExecutionStep.System。 Web.HttpApplication.>IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值& 同步完成)

这似乎页面上的某些资源丢失并且调用了 404 页面,但我已经检查了所有资源,包括图像/css,我在网络中注意到这一点,有时页面上的一些图像返回状态取消,

此错误是在随机页面上报告的,而不是每次都报告。

【问题讨论】:

  • 你知道是哪个页面吗?
  • 这在任何页面上都不是特定的,我猜在母版页或作为用户控件的标题控件中存在一些错误,并且它呈现在母版页上。
  • 我已经调试并检查了每个对象/变量,但我在本地找不到任何错误,
  • 嗯,如果没有更多信息,这将很难解决。

标签: asp.net vb.net user-controls


【解决方案1】:

老 asp.net 网络表单开发人员。

如果您尝试直接在客户端访问任何服务器端控件的字段或属性,并且您尝试访问的此对象为空,您可能会收到此错误,不幸的是日志确实有限。例如,在某些情况下,您有一个呈现控件,并且您在 aspx.cs 端定义了一个属性,在 getter 中它返回呈现的对象。如果对象处于未渲染和/或 null 的状态,并且您希望在客户端获取此对象的客户端 ID 作为 ,则会收到此错误。

【讨论】:

  • 我所在的团队有幸在 2020 年维护了一个 Web 表单应用程序,而我们只是被这个烧毁了。在我们的 aspx 视图 HTML 中,我们在脚本标记中输出一些基于请求的 HTML,例如 userLanguage: '<%= Request.UserLanguages[0] %>'。在我们的 Page_Load 回发中,我们会将用户重定向到不同的 URL,但看起来页面仍然会尝试呈现、访问请求并崩溃,大概是因为它由于重定向而被破坏。现在我们在 Page_Load 中设置我们的属性,将逻辑排除在您的视图之外,为了人类的利益!
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 2014-11-18
  • 2014-10-12
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 2017-03-26
  • 2016-09-01
相关资源
最近更新 更多