Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 页面加载中的ViewState为空,但不是回发_C#_Asp.net_Viewstate_Nullreferenceexception - Fatal编程技术网

C# 页面加载中的ViewState为空,但不是回发

C# 页面加载中的ViewState为空,但不是回发,c#,asp.net,viewstate,nullreferenceexception,C#,Asp.net,Viewstate,Nullreferenceexception,我的公司主持的一个高流量网站出现了一个奇怪的NullReferenceException问题。异常记录为完整的堆栈跟踪,但我无法复制它 对于不同的用户,该异常每天发生几次,它是在下面的代码块中抛出的NullReferenceException: protected void Page_Load(object sender, EventArgs e) { ... if (!Page.IsPostBack) { ... this.ViewSt

我的公司主持的一个高流量网站出现了一个奇怪的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
        ...
    }
}
我唯一能想到的是,如果
ViewState
为NULL,就会抛出NullReferenceException,但我从来都不知道这一点,也找不到在非回发的页面加载中会出现这种情况的任何原因

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)

关于它,我唯一能说的是(我最近也遇到过类似的情况)
StaticClass.StaticStringProperty
为NULL。但话说回来,你一定注意到了这一点。我想不出别的什么了。

你为什么说这两个属性都是初始化的?它们的值是从应用程序中的另一个页面/类设置的吗?即使您认为它不相关,您仍然应该提供有问题的属性。我编辑了我的问题,以提供
StaticStringProperty
的声明-它是一个硬编码的字符串,永远不会更改
StaticIntProperty
是一个整数,所以永远不会为空。@Andy-我现在明白你的意思了。我和你一样迷路了!嗨,安迪,很多次我以为我知道在哪一行抛出了一个空指针异常,结果发现我错了。因此,您可能希望发布整个代码块,以查找它可能发生在哪一行。@chiccodoro,谢谢您的建议。我们把PDB留在生产中,它在堆栈跟踪中精确地指向这条线。是的,这是我唯一能想到的,但它是一个硬编码字符串。我编辑了我的问题,以提供
StaticStringProperty
的声明
StaticIntProperty
是一个int,因此永远不会为null。也许你可以给堆栈跟踪看看。我已经发布了堆栈跟踪。我看不到里面有什么特别有用的东西,但请随便看看。