2010-12-23 3 views
1

Каков наилучший способ обработки системной ошибки в ASP.NET MVC? Я просмотрел видео на DimeCast.net, в котором парень использовал файл global.ascx, чтобы написать метод Application_Error для обработки ошибок. Но в настоящее время я обрабатываю свои ошибки внутри файла web.config.Правильный способ обработки системных ошибок ASP.NET MVC

Может ли кто-нибудь указать мне в правильном направлении, как правильно обрабатывать ошибки? Это может быть:

  1. ошибка синтаксиса
  2. исключения
  3. 404 и другая страница/файл не найден ошибки

Приложение достаточно велико.

ответ

1

Скорее всего, вам понадобится сочетание подходов. Некоторые ошибки могут быть обработаны непосредственно в ваших моделях, другие в ваших контроллерах, а некоторые другие могут быть обработаны вплоть до уровня приложения (либо через web.config, либо через global.ascx.)

Я предпочитаю для обработки ошибок в global.ascx, а не путем перенаправления в web.config, потому что в global.ascx у меня больше информации о запросе, вызвавшем ошибку, где, как если бы я делал перенаправление через настройки web.config, некоторые из этих информация теряется к моменту, когда моя страница ошибки получит запрос.

Несколько недель назад я просто заметил, что ошибки 404 лучше не обрабатывать через web.config, потому что (по дизайну) вызывает код перенаправления HTTP 302, а не истинный код HTTP 404, который указывает клиенту, что ресурс не существует. У меня есть сообщение в моем блоге, где я подробно расскажу об этом. http://hectorcorrea.com/Blog/Returning-HTTP-404-in-ASP.NET-MVC

Использование ELMAH как предложенного Brook также является очень хорошей идеей.

7

Посмотри на elmah для протоколирования необработанных исключений, есть на самом деле быстрый пример на nuget demo video

Я использую комбинацию Elmah для необработанных исключений, и NLog войти те, что я могу справиться, но все еще хочу войти. Пока что комбинация проработала очень хорошо.

+0

nuget demo video - ссылка мертва, может у вас обновить ur link –

Смежные вопросы