這是我在這裏的第一篇文章,所以容易對我:)我有一個ASP.Net頁面奇怪的問題。將字符串文字分配給變量時,我得到的對象未設置錯誤消息。這是我得到的錯誤。ASP.Net字符串分配失敗
[的NullReferenceException:對象 參考不設置到 對象的實例。]
Project.Page.Page_Load(對象發件人, EventArgs的)在 C:\項目\ Page.aspx.vb :10
System.Web.UI.Control.OnLoad(EventArgs的 E)91
System.Web.UI.Control.LoadRecursive() 74 System.Web.UI.Page.ProcessRequestMain(布爾 includeStagesBeforeAsyncPoint,布爾 includeStagesAfterAsyncPoint)+2207
這裏是錯誤指向的代碼。在這個片段中的最後一行是錯誤抱怨行10對
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim teststring As String
teststring = "test"
似乎它失敗在訪問任何引用類型,即使是在負載功能局部聲明。當我的Request.IsSecureConnection無效時,我最初發現了這個問題。我最終發現我可以用上面的代碼替換它,並以相同的方式失敗。
這個問題並不總是會發生。這似乎是通過從Visual Studio發佈更新,或者當我回到家中一整天並且服務器整夜閒置而觸發的。一個或兩個應用程序池回收似乎將其清除,並且該頁面正常工作。
任何幫助將不勝感激。幾年來我一直在做桌面開發,但我對Web開發相當陌生。所以也許這是顯而易見的,我配置錯了。我目前使用的.Net 4 IIS 6上
UPDATE
我能夠確定使用複製頁,註釋東西展現出來,然後取消註釋一行在時間的推薦線路。我的測試頁開始給錯誤的路線是這樣一個
昏暗Statename的作爲字符串= State.Attribute(XName.Get(「名字」))。值
該代碼是在foreach通過IEnumerable(XElement)。堆棧跟蹤仍然指向字符串分配,但所有其他堆棧跟蹤都是現貨,所以我不認爲這是一個糟糕的pdb。
此外,當此次發生錯誤時,無法回收應用程序池或停止並啓動它將修復錯誤。我終於通過將應用程序切換到不同的應用程序池來重新開始工作。
我同意該代碼不應該能夠拋出空引用。我檢查了我的pdb和dll上的時間戳,他們匹配;雖然,我不確定這是否是一種準確的方式來表明它們是匹配的。 – cduncan 2010-08-16 16:38:20
我同意這行代碼不能拋出空引用異常。錯誤是在別的地方,但你需要縮小在哪裏。你能否在另一個空白頁上覆制錯誤,這是頁面上唯一的代碼?如果沒有,那麼將這些內容添加到您的空白頁面,直到發生錯誤,這可能是真正的原因,假設它在本頁面上。 – 2010-08-16 17:06:06