使用customErrors mode =“on”时,如何在asp.net mvc 3中没有控制器的情况下记录异常?

时间:2010-12-31 22:53:27

标签: logging error-handling asp.net-mvc-3

我今天阅读了很多关于在ASP.NET MVC中实现自定义错误页面的主题(使用3 RC2)。我希望能做的一件事是记录异常,但我不确定最好的钩子在哪里。

我主要关注Barry Dahlberg's advice,这有助于我设置所需的404行为。我想将这些与服务器错误分开,并以不同方式记录它们。

似乎当我有< customErrors mode =“On”>时,MVC3只使用〜/ Views / Shared / Error.cshtml中定义的视图,传递正确的System.Web.Mvc.HandleErrorInfo模型实例。实际上,这是绕过我将放置错误记录代码的控制器。

我尝试设置< customErrors mode =“On”defaultRedirect =“errors / unexpected”/>,但控制器操作方法永远不会被调用。

视图中的HandleErrorInfo模型具有记录所需的异常信息。我可以在视图中记录错误,但闻起来很有趣。

另一个解决方案是保持< customErrors mode =“Off”/>。由于这会导致从Global.asax调用Application_Error,我可以在那里登录。

想法?

1 个答案:

答案 0 :(得分:2)

您可以编写custom HandleError属性,您可以在覆盖OnException方法中记录异常。