当在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