當在Asp.Net網頁中引發異常時,會顯示一條錯誤消息和完整的堆棧跟蹤。下面帶有錯誤行號的異常錯誤消息
實施例:
堆棧跟蹤:
IndexOutOfRangeException:索引陣列的邊界之外。
MyNameSpace.SPAPP.ViewDetailsCodeBehind.LoadView()5112 MyNameSpace.SPAPP.ViewDetailsCodeBehind.Page_Load(對象發件人,EventArgs的)67
錯誤幫助(IntPtr的FP,對象o ,物體T,EventArgs的)13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(對象發件人,EventArgs的)43
System.Web.UI.Control.OnLoad(EventArgs的)98
.. ...
問題是行號顯示yed不對應於我的代碼中發生異常的行。
在上面的例子中,堆棧顯示了行號5111,但是我的.cs文件後面的代碼只有250行!
aspx頁面存儲在SharePoint網站中,並且後面的代碼已被部署到GAC。另外,我已經在Debug模式下編譯。
考慮到上面的設置,我怎麼才能找出我的代碼中的哪一行導致異常?
澄清通過strelokstrelok指出:
在Release模式在異常前的數量不是代碼行。相反,它是本地編譯代碼的一個偏移量,它對人類沒有任何意義。更多關於此這裏:http://odetocode.com/Blogs/scott/archive/2005/01/24/963.aspx
在調試模式 PDB文件將自動映射本地代碼偏移在代碼中你的.cs線和顯示將在代碼中相應的行數。
..當然,當它是一個行號,它明確地說:..... \ Areas \ Store \ Models \ CheckoutModel.cs:line 158 – 2010-12-16 00:39:03