在发布模式下部署.net程序集时,未启用堆栈跟踪。因此,我们无法从异常中获取堆栈跟踪并将其记录在生产环境中。
为了知道生产代码中发生异常的位置并记录它,我们使用weird approach我不熟悉但是我无法找到一个更好的解决方案来记录发生异常的确切方法第一名。
请注意,日志记录机制也用于确定错误。因此,当引发NullReferenceException或IndexOutOfBoundsException时,仅获取异常类型和消息没有帮助,我们经常需要知道异常发生的确切位置。
你是如何处理的?发生异常时,您会在生产代码上记录哪些信息?如何通过该信息确定问题所在?
答案 0 :(得分:2)
查看ELMAH,我自己没有实现它,但它似乎得到了一些关注。
http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
将ELMAH放入正在运行的Web应用程序并进行适当配置后,您将获得以下设施而无需更改一行代码:
答案 1 :(得分:1)
我们在发布代码的堆栈跟踪时没有问题,但是我们总是随着我们的版本发布.pdb文件。如果没有pdb,您将始终受限于程序集本身中包含的符号信息,对于处于发布模式的程序集,它将不会很多。
答案 2 :(得分:0)
我们所有的发布代码都有堆栈跟踪。我们唯一缺少的是行号,因为它们来自.pdb。你在运行混淆器吗?