我正在使用来自 MvcContrib 的过滤器,它会在发生错误时显示漂亮的错误页面、我自己的视图。问题是,当这种情况发生时,ELMAH 不会向我发送有关该问题的电子邮件,我仍然想知道出了什么问题。
看来关键在 ExceptionContext 的异常处理中。当设置为 true 时,ELMAH 不会发送电子邮件并且我有自己的看法,如果我将其设置为 false ELMAH 确实会发送消息,但我会从 IIS 收到一条丑陋的消息。任何想法如何显示漂亮的视图并收到电子邮件?
我正在使用来自 MvcContrib 的过滤器,它会在发生错误时显示漂亮的错误页面、我自己的视图。问题是,当这种情况发生时,ELMAH 不会向我发送有关该问题的电子邮件,我仍然想知道出了什么问题。
看来关键在 ExceptionContext 的异常处理中。当设置为 true 时,ELMAH 不会发送电子邮件并且我有自己的看法,如果我将其设置为 false ELMAH 确实会发送消息,但我会从 IIS 收到一条丑陋的消息。任何想法如何显示漂亮的视图并收到电子邮件?
您需要添加一个拦截处理程序,就像Scott Hanselman 所写的那样。我已经命名了我的 HandleErrorWithElmahAttribute。这被调用。使用 ELMAH 记录错误。清理一切,并给出一个漂亮的页面。您只需确保您的 ELMAH 操作过滤器错误处理程序获得的订单少于您的 MvcContrib 错误操作过滤器。
虽然与 ELMAH 无关,但您可能需要查看这篇关于ASP.NET MVC 中的全局异常处理的博客文章。