asp.net错误显示字节偏移而不是行号,即使在调试模式下也是如此

Jos*_*ank 4 .net asp.net debugging error-handling

在我部署的.NET 3.5/ASP.NET Web应用程序中,错误堆栈跟踪始终显示本机代码的字节偏移,而不是行号:

...
System.Linq.Enumerable.ToList(IEnumerable`1 source) +61
MyApp.prLoadData() +3931                             <--should show line number
MyApp.Page_Load(Object sender, EventArgs e) +1378    <--should show line number
System.Web.UI.Control.OnLoad(EventArgs e) +99
...
Run Code Online (Sandbox Code Playgroud)

我已经彻底检查过的事情:

  • 应用程序二进制文件在调试模式下编译.
  • 我将"生成调试信息"设置为"完整"
  • 应用程序pdb文件部署到bin目录,并具有与dll文件相同的创建时间戳.
  • 在web.config中设置compilation ="true"没有任何区别.
  • 取消选中"启用优化"没有任何区别.

这个特定的服务器由IT部门拥有,我无法访问它,也没有机器级覆盖的任何知识.不过,我原本希望ASP.NET使用pdb文件,但它没有这样做.

有谁知道这里发生了什么?提前致谢.

Jos*_*ank 5

好吧,经过大量研究后,我在SO上找到了答案:即使pdb存在,IIS也不会在堆栈跟踪中给出行号.

为方便起见,我将在此总结答案.如果你有

<identity impersonate="true" />
Run Code Online (Sandbox Code Playgroud)

在您的web.config文件中,这会禁用堆栈跟踪中的行号(除非您授予模拟用户的调试权限).我把它拿出来,现在我得到行号.

只是告诉你,用来表达问题的词语对于你是否能够完全匹配现有的回答问题确实有所不同!