无法在ELMAH中记录代码500错误

时间:2010-08-22 04:33:10

标签: asp.net-mvc-2 iis-7 elmah

在我在IIS 7中运行的ASP.NET 4.0 MVC项目中,我已经设置并配置了ELMAH来记录我的站点上的错误。但是,我无法使用代码500获取任何错误报告。

我设置了一个简单的控制器,它创建了一个被零除的异常,但是ELMAH没有记录它。我可以让ELMAH记录其他消息就好了,我没有过滤掉ErrorLog_Filtering中的任何异常。

此外,为了显示自定义页面,我更新了web.config的httpErrors部分,如下所示:

<customErrors mode="RemoteOnly" defaultRedirect="~/error/GenericError">
  <error statusCode="403" redirect="~/error/AccessDenied" />
  <error statusCode="404" redirect="~/error/NotFound" />
  <error statusCode="500" redirect="~/error/Offline" />
  <error statusCode="501" redirect="~/error/Offline" />
  <error statusCode="503" redirect="~/error/Offline" />
</customErrors>

<system.webServer>
    <httpErrors errorMode="DetailedLocalOnly" >
        <error statusCode="403" prefixLanguageFilePath="" path="/error/AccessDenied" responseMode="ExecuteURL" />
        <error statusCode="404" prefixLanguageFilePath="" path="/error/NotFound" responseMode="ExecuteURL" />
        <error statusCode="500" prefixLanguageFilePath="" path="/error/GenericError" responseMode="ExecuteURL" />
        <error statusCode="501" prefixLanguageFilePath="" path="/error/GenericError" responseMode="ExecuteURL" />
        <error statusCode="503" prefixLanguageFilePath="" path="/error/Offline" responseMode="ExecuteURL" />

最后,在查看应用程序日志文件时,代码500错误消息不会显示在那里。

是否存在我缺少的配置,或者我是否在某种程度上意外地自行捕获错误并且不让它传播?

1 个答案:

答案 0 :(得分:4)

您需要删除在FilterConfig.cs的HandleErrorAttribute中添加过滤器RegisterGlobalFilters()的行。 this question中的更多详细信息。