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

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

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


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


Ответы (1)


На самом деле 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

person Maslow    schedule 21.12.2012