2011-06-01 125 views
1

我在我的网站上发送一个Object reference not set to an instance of an object错误,通过电子邮件发送给我。当我转到该页面时,我没有收到任何错误。有人可以解释基于这个堆栈跟踪会发生什么“可能”。我知道渲染有些问题,但我不知道该从哪里出去......谢谢。有人可以帮我理解这个堆栈跟踪吗?

at ASP.controls_si_item_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.Control.Render(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.Control.Render(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.Control.Render(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) 
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.Control.Render(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
at System.Web.UI.Page.Render(HtmlTextWriter writer) 
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
+1

这是一个很深的痕迹;确定你没有发生一些意外的递归? – 2011-06-01 14:42:06

+0

此控件有一个父控件,它是从派生而来的,但我不认为它正在循环,因为我已经从父控件中删除了initialse。这通常工作正常,它只是一个随机错误:/ – webnoob 2011-06-01 14:44:18

+0

这是MVC?是[这个答案](http://stackoverflow.com/questions/3289269/object-reference-not-set-to-an-instance-of-an-object)有什么用? – Town 2011-06-01 14:55:45

回答

0

终于找到了答案:)在我的.ascx文件中,我有一些基于控件ID选择标签的JavaScript。事实证明,在某些情况下,控制不可用,并因此引发对象引用错误。这是我的代码:

var hdnSCSSelectedTabIndex=$('#<%= hdnSCSSelectedTabIndex.ClientID %>'); 
var tabIndex = hdnSCSSelectedTabIndex.val(); 

,现在我这样做:

<% if (hdnSCSSelectedTabIndex != null) { %> 
    var hdnSCSSelectedTabIndex=$('#<%= hdnSCSSelectedTabIndex.ClientID %>'); 
    var tabIndex = hdnSCSSelectedTabIndex.val(); 
<% } %> 

先后排序的问题出来了。请注意,如果不在我的Web.config文件中设置Debug =“True”,我无法查看问题的原因。

希望这可以帮助别人:)

1

如果在代码隐藏中发生异常,您可以尝试使用调试版本来获取堆栈跟踪中的行号。
另外我会看IIS请求日志以获取引起此请求的线索。

查看您web.config的compilation部分。您可以在那里启用调试模式,它应该将行号添加到我认为的堆栈跟踪中。

+0

我该如何解决这个问题?我不知道这在ASP.NET中是可能的。 – webnoob 2011-06-01 15:05:57

+0

我不确定,但它可能会工作,因为有代码生成并编译为控件。在ASP.NET缓存文件夹中查找* controls_si_item_ascx *。 – axk 2011-06-01 15:25:35