ASP.NET 黄屏死机 (YSOD) 可以按需生成或捕获吗?
例如,我们只想捕获 YSOD 输出以在错误报告电子邮件中使用,例如来自 Global.asax 错误处理程序。 有没有办法利用内置的 ysod 生成器?
We'd like to just capture the YSOD output to use in an erorr reporting email, from a Global.asax error handler, for instance. Is there any way of leveraging the built-in ysod generator?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你听说过埃尔玛吗? 它可能会为您提供您真正想要的所有功能...
这是一篇博客文章,对此进行了一些解释: http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
Have you heard of ELMAH ? It might give you all the features you really want...
Here is a blog post that explains a bit about it : http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
您应该查看 ELMAH 它会自动执行您所要求的操作。
You should check out ELMAH it does what you are asking automatically.
我想说的是,一般来说,你不希望用户体验 YSOD。 这是我之前在网络应用程序中放置的东西,用于捕获错误,然后向用户提供更优雅的错误页面......
I would say in general, you do not want the user to experience the YSOD. This is something I've put in web apps before to capture the error and then allow for a more graceful error page to the user...
每当应用程序中发生未处理的异常时,就会触发 Global.asax 文件中的 Application_Error 事件。 您可以使用 Server.GetLastError() 方法获取最后发生的异常。
同样,您可以通过在 web.config 文件的 customErrors 部分下的 web.config 中指定来创建自己的自定义错误页面。 通过指定默认文件,当异常路由到那里时,您可以执行任何自定义编码。
The Application_Error event in the Global.asax file is triggered whenever an unhandled exception occurs in the application. You can grab the last exception that occurred using the Server.GetLastError() method.
Similarly, you could create your own custom error page by specifying it in the web.config under the customErrors section in the web.config file. By specifying a default file, you can do any custom coding when an exception is routed there.
我会研究ELMAH(ASP.NET 的错误日志模块和处理程序):
I would look into ELMAH (Error Logging Modules and Handlers for ASP.NET):
是的,有一种方法可以做到这一点。
在 global.asax 文件的 Application_Error 事件中,获取最后一个异常作为 System.HttpUnhandledException。 您的代码将如下所示:
我同意其他人的评论。 您也可以使用 ELMAH 来完成此操作。
Yes there is a way that you can do this.
In the Application_Error event in the global.asax file, get the last exception as an System.HttpUnhandledException. Your code will look like this:
I agree with other people's comments. You can also do this with ELMAH.