2010-06-04 73 views
1

我在我的公司託管的高流量網站上遇到了NullReferenceException的奇怪問題。例外情況會記錄完整的堆棧軌跡,但我無法複製它。ViewState在Page_Load中爲NULL,但不回發

唯一的例外發生了幾次,每天針對不同的用戶,它是在下面的代碼塊拋出一個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將在上述行拋出?

EDIT

按照要求,完整的堆棧 - 用於跟蹤誤差如下。第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

你是什麼意思爲什麼你說這兩個屬性都初始化?它們的值是否在應用程序中的另一個頁面/類中設置?即使你不認爲它是相對的,你仍應該提供有問題的屬性。 – GenericTypeTea 2010-06-04 14:34:27

+0

我編輯了我的問題以提供'StaticStringProperty'聲明 - 這是一個永不改變的硬編碼字符串。 'StaticIntProperty'是一個int,所以永遠不會爲空。 – 2010-06-04 14:39:50

+0

@安迪 - 我明白你的意思了。我和你一樣迷惘! – GenericTypeTea 2010-06-04 14:40:43

回答

0

我可以說的唯一一件事(最近我有類似的情況)是StaticClass.StaticStringProperty是NULL。但是,再一次,你一定已經注意到了這一點。我想不出別的東西。

+0

是的,這是我能想到的唯一的其他事情,但它是一個硬編碼的字符串。我編輯了我的問題以提供'StaticStringProperty'的聲明。 'StaticIntProperty'是一個int,所以永遠不會爲空。 – 2010-06-04 14:40:29

+1

也許你可以給堆棧跟蹤看一看。 – ileon 2010-06-04 14:50:50

+0

我已經發布了堆棧跟蹤。我看不到任何特別有用的東西,但可以隨時查看。 – 2010-06-04 15:06:54

相關問題