Невозможно записать ошибки кода 500 в ELMAH - PullRequest
6 голосов
/ 22 августа 2010

В моем проекте ASP.NET 4.0 MVC, работающем в IIS 7, я настроил и настроил ELMAH для регистрации ошибок на моем сайте. Однако я не могу получить отчеты об ошибках с кодом 500.

Я установил простой контроллер, который создает исключение деления на ноль, но ELMAH не регистрирует его. Я могу заставить ELMAH регистрировать другие сообщения просто отлично, и я не отфильтровываю никаких исключений в ErrorLog_Filtering.

Кроме того, для отображения пользовательских страниц я обновил раздел httpErrors файла web.config следующим образом:

<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 Ответ

4 голосов
/ 03 января 2014

Вам нужно удалить строку, добавив фильтр HandleErrorAttribute в RegisterGlobalFilters() в FilterConfig.cs.Подробнее в этом вопросе .

...