nic*_*rom 6 asp.net error-logging yellow-screen-of-death error-reporting
例如,我们想从Global.asax错误处理程序中捕获用于erorr报告电子邮件的YSOD输出.有没有办法利用内置的ysod生成器?
我将研究ELMAH(ASP.NET的错误记录模块和处理程序):
ELMAH(错误记录模块和处理程序)是一个完全可插拔的应用程序范围的错误记录工具.它可以动态添加到正在运行的ASP.NET Web应用程序,甚至是计算机上的所有ASP.NET Web应用程序,而无需重新编译或重新部署.
将ELMAH放入正在运行的Web应用程序并进行适当配置后,您将获得以下功能,而无需更改代码的任何一行:
- 记录几乎所有未处理的异常.
- 用于远程查看重新编码的异常的整个日志的网页.
- 用于远程查看任何一个已记录异常的完整详细信息的网页.
- 在许多情况下,您可以查看ASP.NET为给定异常生成的原始黄色死亡屏幕,即使关闭了customErrors模式也是如此.
- 每个错误发生时的电子邮件通知.
- 来自日志的最后15个错误的RSS提要.
是的,有一种方法可以做到这一点.
在Global.asax文件的Application_Error事件,得到的最后一个异常作为System.HttpUnhandledException.您的代码将如下所示:
var lastException = Server.GetLastError() as HttpUnhandledException;
string Ysod = lastException.GetHtmlErrorMessage();
// your call to emailing routine follows
Run Code Online (Sandbox Code Playgroud)
我同意其他人的意见.您也可以使用ELMAH执行此操作.