Использовать глобальную (немую) страницу ошибок для всех ошибок ASP.NET MVC? - PullRequest
1 голос
/ 24 июня 2009

Я настроил и настроил ELMAH для регистрации всех моих ошибок в проекте ASP.NET MVC, над которым я работаю. Он будет использоваться небольшой группой пользователей, которым не нужно знать слишком много, поэтому всякий раз, когда возникает ошибка любая (404, InvalidOperation, Y2K ... что угодно!), Я просто хочу показать это общий вид ошибок по умолчанию с инструкциями, чтобы позвонить в нашу службу поддержки и сидеть сложа руки.

ELMAH запущен и работает нормально, что наш персонал службы поддержки будет использовать для диагностики ошибок и регистрации / повышения заявок по мере необходимости. Моя проблема в том, чтобы показать мою страницу глобальной ошибки. Я использую решение, опубликованное здесь , чтобы гарантировать, что ELMAH и [HandleError] хорошо играют вместе.

Web.config настроен так:

<customErrors mode="On" />

Если я получаю доступ к http://application/Home/Index, в котором есть ошибка LINQ (последовательность не содержит элементов), то мне показывают мой хороший общий вид ошибки из /Shared/Error.aspx, но если я пытаюсь получить доступ к http://application/Fake/Broken то есть 404, тогда я получаю обычный ASP.NET

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Fake/Broken

Обе ошибки отлично регистрируются ELMAH.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2009

Если вы просто хотите показать общую страницу с ошибкой, вы можете указать саму страницу:

<customErrors mode="On" defaultRedirect="error.htm" />

Это приведет к тому, что все необработанные исключения, не найденные страницы и т. Д. Покажут ваш "error.htm". Вы можете быть более точным в отношении кодов ошибок:

<customErrors mode="On">
  <error statusCode="404" redirect="notfound.htm"/>
</customErrors>
0 голосов
/ 24 июня 2009

если вы используете iis 7, вам может потребоваться добавить это к вашему

<system.webServer>

раздел в конфигурационном файле

<httpErrors errorMode="Custom" existingResponse="PassThrough" />
...