Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 异常错误消息,行号不正确_C#_Asp.net_Sharepoint_.net 2.0_Gac - Fatal编程技术网

C# 异常错误消息,行号不正确

C# 异常错误消息,行号不正确,c#,asp.net,sharepoint,.net-2.0,gac,C#,Asp.net,Sharepoint,.net 2.0,Gac,在Asp.Net网页中引发异常时,将显示一条错误消息,其中包含完整的堆栈跟踪 示例如下: 堆栈跟踪: IndexOutOfRangeException:索引超出了数组的边界 MyNameSpace.SPAPP.ViewDetailsCodeBind.LoadView()+5112 MyNameSpace.SPAPP.ViewDetailsCodeBind.Page_加载(对象发送方,事件参数)+67 System.Web.Util.CalliHelper.EventArgFunctionCall

在Asp.Net网页中引发异常时,将显示一条错误消息,其中包含完整的堆栈跟踪

示例如下:

堆栈跟踪:
IndexOutOfRangeException:索引超出了数组的边界

MyNameSpace.SPAPP.ViewDetailsCodeBind.LoadView()+5112 MyNameSpace.SPAPP.ViewDetailsCodeBind.Page_加载(对象发送方,事件参数)+67
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp、对象o、对象t、事件参数e)+13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者,事件参数)+43
System.Web.UI.Control.OnLoad(EventArgs e)+98
... ...

问题是显示的行号与引发异常的代码中的行号不一致。
在上面的示例中,堆栈显示行号5111,但我的codebhind.cs文件只有250行

aspx页面存储在SharePoint网站中,带有代码隐藏的程序集已部署到GAC。此外,我还以调试模式编译。

鉴于上述设置,如何找出代码中的哪一行导致了异常?



澄清如下:

释放模式下异常前面的数字不是代码行。相反,它是对本机编译代码的偏移,对人类没有任何意义。更多信息请点击此处:

在调试模式下,PDB文件将自动将本机代码偏移量映射到代码中的.cs行,显示的数字将是代码中的相应行


您的代码隐藏文件不是完整的类,它只是ASP.NET编译整个类时使用的一部分。要找到这一行的真正内容,请使用Reflector之类的工具查看已编译的类/程序集。

可能运行的代码与您在屏幕上看到的不同。某些伙伴可能已经为您重构了它。:)

这些数字不是行号。在释放模式下,堆栈跟踪将偏移量包含到本机编译代码中,而不是行号中。您可以在此处阅读更多关于它的信息:


获取堆栈跟踪中的行号的唯一方法是使用可用的PDB文件在调试模式下编译代码。

我可能在这里错了,但是,在ASP.Net中,堆栈始终为您提供正确的行号,但是在ASP.Net+SharePoint中,情况似乎并非如此。无论如何,我使用了RedGate.NETReflector,但是我找不到任何可以帮助我识别导致异常的代码行的东西。这是不正确的。这些数字不是行号,甚至不偏移到IL。。。当然,当它是一个行号时,它会明确表示:…..\Areas\Store\Models\CheckoutModel.cs:line 158如果您在团队环境+1中,请记住从源代码管理获取最新代码