我的公司托管的高流量网站上有一个NullReferenceException的奇怪问题。使用完整堆栈跟踪记录异常,但我无法重现它。
对于不同的用户,异常每天发生几次,并且在下面的代码块中抛出了NullReferenceException:
protected void Page_Load(object sender, EventArgs e)
{
...
if (!Page.IsPostBack)
{
...
this.ViewState[StaticClass.StaticStringProperty] = StaticClass.StaticIntProperty; // this is the line the exception occurs on
...
}
}
我唯一可以认为抛出NullReferenceException的地方是ViewState
是否为NULL,但是我从来都不知道,并且找不到任何理由为什么在Page_Load中会出现这种情况不是回发。
StaticStringProperty
和StaticIntProperty
都是StaticClass
的初始化静态属性。
StaticStringProperty
定义为:
public const string StaticStringProperty = "IdFromClient";
是否有人知道如何发生这种情况,或者在上面的行上抛出NullReferenceException的任何其他原因?
修改
根据要求,错误的完整堆栈跟踪如下所示。第54行是我在上面突出显示的行。
at MyCompany.MyApplication.Appliance.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\shellama\My Documents\MyApplication\Appliance.aspx.cs:line 54
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at MyCompany.MyApplication.PageBase.OnLoad(EventArgs e) in C:\Documents and Settings\shellama\My Documents\MyApplication\App_Code\PageBase.cs:line 58
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
答案 0 :(得分:0)
我唯一可以说的是(我最近有类似情况)是StaticClass.StaticStringProperty
为NULL。但话说回来,你必须注意这一点。我想不出别的什么。