Page_Load中的ViewState为NULL,但不是回发

时间:2010-06-04 14:24:52

标签: c# asp.net viewstate nullreferenceexception

我的公司托管的高流量网站上有一个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中会出现这种情况不是回发。

StaticStringPropertyStaticIntProperty都是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)

1 个答案:

答案 0 :(得分:0)

我唯一可以说的是(我最近有类似情况)是StaticClass.StaticStringProperty为NULL。但话说回来,你必须注意这一点。我想不出别的什么。