2013-05-18 24 views
0

我有一個網站,我相信是在ASP .NET,這是拋出一個異常System.NullReferenceException: Object reference not set to an instance of an object.。堆棧跟蹤顯示如下:在ASP .NET中調試編譯函數

[NullReferenceException: Object reference not set to an instance of an object.] 
    SomeScript.getConnection() +32 
    SomeScript.buildGridData() +299 
    SomeScript.Page_Load(Object sender, EventArgs e) +92 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43 
    System.EventHandler.Invoke(Object sender, EventArgs e) +0 
    System.Web.UI.Control.OnLoad(EventArgs e) +91 
    System.Web.UI.Control.LoadRecursive() +74 
    System.Web.UI.Control.LoadRecursive() +163 
    System.Web.UI.Control.LoadRecursive() +163 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2603 

同樣的錯誤在上面的堆棧跟蹤交替的加載腳本發生了哪些請求數據的網站基本上所有頁面,只用SomeScript

環境變化只能用於更改站點用於發送郵件的遠程SMTP服務器的密碼,但在進行更改後網站仍會繼續正常加載。

我的感覺是,用戶嘗試在網站中使用所述SMTP郵件功能並收到錯誤(我無法捕獲收到的錯誤用戶)後,發生了getConnection()方法的這些錯誤。

由於getConnection()方法似乎在編譯後的DLL中,並且不能被我訪問,所以我在調試的時候有點遺憾。

嘗試刪除錯誤的下一步是什麼?

回答

1

首先,SMTP密碼更改不太可能導致您的描述中出現問題。但是,如果在Web.config文件中更改了密碼,我會說它可能沒有經過仔細的修改,實際上,那裏的數據庫連接相關部分已經被無意中修改並且不再有效。

如果您希望能夠調試到DLL中,您可以禁用在Visual Studio中調試「Just My Code」選項(類似於Tools/Options/Debugging) - 然後您應該能夠進入這些DLL並查看問題所在。希望它不需要任何代碼更改,您可以修復配置文件。

+0

謝謝。我對IIS的愛仍在繼續,就像打開web.config文件,做一些改變,恢復和保存,緩解了這個問題。可能有人按照你的說法編輯了文件,試圖更改SMTP信息並欺騙數據庫連接。 –