2011-11-06 83 views
0

當我開始我的應用程序,我得到這個錯誤:服務器對象爲空?

System.NullReferenceException was unhandled by user code 
Message=Objektreferensen har inte angetts till en instans av ett objekt. 
Source=App_global.asax.avoeinwy 
StackTrace: 
vid ASP.global_asax.BuildMessage() i E:\WEBB\Adilimo\Papp\Web\papplimited_com\global.asax:rad 400 
vid ASP.global_asax.Application_Error(Object sender, EventArgs e) i E:\WEBB\Adilimo\Papp\Web\papplimited_com\global.asax:rad 46 
vid System.EventHandler.Invoke(Object sender, EventArgs e) 
vid System.Web.HttpApplication.RaiseOnError() 
InnerException: 

這是它發生在哪裏:

 Dim strMessage As New StringBuilder 
....... (lots of "strMessage.Append()") 
     strMessage.Append("<tr>") 
     strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#EEEEEE"" class=""header1"" nowrap valign=""top"">Details</td>") 
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & Server.GetLastError.InnerException.ToString() & "</td>") 
     strMessage.Append("</tr>") 

這裏是堆棧跟蹤:

vid ASP.global_asax.BuildMessage() i E:\WEBB\Adilimo\Papp\Web\papplimited_com\global.asax:rad 400 
    vid ASP.global_asax.Application_Error(Object sender, EventArgs e) i E:\WEBB\Adilimo\Papp\Web\papplimited_com\global.asax:rad 46 
    vid System.EventHandler.Invoke(Object sender, EventArgs e) 
    vid System.Web.HttpApplication.RaiseOnError() 

有什麼建議嗎?當我看到服務器對象爲空時,我真的不知道該怎麼做。 :(

此處給出了一個我在哪裏的服務器對象顯然是不空行得到一個NullReference的圖像!

enter image description here

+0

你爲什麼要檢查啓動時的最後一個錯誤? –

+1

您是否嘗試使用BuildMessage()方法的開始處的斷點進行調試,以及哪個對象爲空? – Damith

+0

@MitchWheat我不是,這段代碼給了我。我不知道原因。 – Lautaro

回答

1

更好地檢查空訪問LastError的的InnerException之前。

strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & Server.GetLastError== null? String.Empty: Server.GetLastError.InnerException.ToString() & "</td>") 

您可能沒有對BuildMessage()方法進行異常處理。put try catch塊並記錄異常,它可以幫助您找到確切的原因,而不必考慮發生了什麼。

If server.GetLastError IsNot Nothing AndAlso Server.GetLastError.InnerException IsNot Nothing Then 
    errormsg = Server.GetLastError.InnerException.ToString() 
End If 
+0

它仍然不是一個好辦法,但是這將解決OP問題,所以+1 – Basic

+0

因此,我應該登錄以獲取更多信息,然後在調試時獲得更多信息? – Lautaro

+0

日誌不僅用於調試時間。可能正在生產中,我們需要檢查究竟是什麼問題。沒有錯誤信息,它將很難找到確切的問題。記錄錯誤,這些信息將幫助您找到解決方案。在這裏你可以記錄'error.ToString()'你發現異常。 – Damith