Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Global.asax работает только в режиме отладки

Автор вопроса: Sérgio PintoОтветов: 1

У меня есть перенаправление на функцию global.asax application_error. Когда я отлаживаю, каждое исключение обрабатывается функцией. Когда я запускаю приложение на веб-сервере, появляется страница с ошибкой IIS по умолчанию. У меня IIS7 и Visual Studio 2005.

С наилучшими пожеланиями!

  • Связано: stackoverflow.com/questions / 6508415 /. Frédéric Hamidi 09.07.2012
  • @ SérgioPin использовать server.tranfer (error.aspx); вместо перенаправления. Nudier Mena 09.07.2012
  • @Nudier Моя цель - записать исключение в файл журнала. Редирект нужен только для того, чтобы понять, запущен Global.asax или нет. Я пробовал Server.transfer вместо Response.Redirect, но он также перенаправляет только при отладке. Я не знаю, если какой-то тег web.config отсутствует или какая-то конфигурация в IIS блокирует global.asax, возможно ли это? Sérgio Pinto 10.07.2012

global-asax

Ответы

Ответ 1 · Maslow

На самом деле IIS также может отображать страницы с ошибками четвертого типа. Эта страница будет возвращена, когда вы настроите HTTP-ошибки для использования настраиваемой страницы ошибок, и проблема возникает, когда IIS пытается ее отобразить.

Когда IIS получает запрос на указанную страницу в демонстрационном приложении, он передает его среде выполнения ASP.NET для обработки. Среда выполнения генерирует ответ, который затем проверяет IIS. IIS потенциально примет меры и заменит этот ответ, если ответ имеет код состояния HTTP, который является кодом состояния ошибки. - Если для existingResponse задано значение PassThrough, IIS не выполняет никаких действий, и ответ возвращается без изменений. - Если для параметра existingResponse задано значение "Заменить", IIS заменяет ответ своим собственным в соответствии со значением атрибута errorMode, поэтому он либо заменяет его подробной, базовой или настраиваемой страницей ошибки. - Если для параметра existingResponse установлено значение Auto, IIS заменяет ответ, сгенерированный ASP.NET, своим собственным, если не установлен флаг SetStatus. (Об этом флаге я расскажу позже в этом посте.)

http://perspectivespace.com/error-handling-in-aspnet-mvc-3-part-2-custom

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы