【发布时间】:2010-04-20 08:26:21
【问题描述】:
Web 配置具有 debug=true 并且项目是调试版本并且 pdb 文件存在于 bin 目录中,但是当引发异常时,我没有在堆栈跟踪中获得行号。
适用于本地 IIS/Cassini,但不适用于我们的测试 IIS 服务器。是否有一些我可能遗漏的明显设置?
【问题讨论】:
标签: c# iis stack-trace
Web 配置具有 debug=true 并且项目是调试版本并且 pdb 文件存在于 bin 目录中,但是当引发异常时,我没有在堆栈跟踪中获得行号。
适用于本地 IIS/Cassini,但不适用于我们的测试 IIS 服务器。是否有一些我可能遗漏的明显设置?
【问题讨论】:
标签: c# iis stack-trace
结果证明是在 web.config 中使用模拟:
<identity impersonate="true" />
导致堆栈跟踪中的行号丢失。我把条目拿出来,我的行号又回来了,把它放回去,几个小时后(Kerberos 票刷新?)行号又消失了。
不确定为什么模拟会影响堆栈跟踪,但确实会 - 很高兴有人确认/解释这一点...
【讨论】:
根据question 4130956: 如果 impersonate="true",要获取堆栈跟踪中的行号,您需要将“调试程序”用户权限分配给您用于登录的帐户。
【讨论】:
检查 MAchine.Config 文件
在 ASP.NET 2.0 中有一个可以在 machine.config 中打开的开关,它关闭所有 debug=true,因此在 2.0 应用程序中,您可以直接执行此操作,而无需担心找出哪些应用程序可以执行和不执行拥有它。
<system.web>
<deployment retail=”true”/>
</system.web>
【讨论】: