В IIS 7.0 не отображаются страницы пользовательских ошибок
Я запускаю приложение, которое имеет свои собственные обработчики ошибок. Страницы ошибок отображаются правильно при тестировании в среде dev (страницы ошибок отображаются правильно).
Однако тот же код на производственной IIS, страницы ошибок заменены.
Проблема описана здесь.
Мне просто интересно, есть ли способ записать эти настройки в файле web.config вместо изменения кода.
Ответы
Ответ 1
Awe прав (+1), но кроме того: IIS 7 имеет специальную обработку, описанную в сообщении в блоге, которое вы связали, и эта статья MSDN, Если вы используете HandleErrorAttribute в своем действии, это уже сделано для вас. Если нет, вам нужно установить:
filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
... сами.
Ответ 2
Ну. Оказалось, что для того, чтобы заставить IIS 7 показывать пользовательские страницы, в файл web.config должны быть добавлены следующие строки.
Вставьте раздел system.webServer
<httpErrors errorMode="Detailed"> <!-- this is impornant -->
<!-- Some custom error pages url go here -->
</httpErrors>
Ответ 3
В файле приложений Web.config есть параметр, чтобы установить режим отладки:
По умолчанию:
<customErrors mode="RemoteOnly" />
Попробуйте установить значение "Выкл." (Примечание: значение чувствительно к регистру!)
<customErrors mode="Off" />
Я не уверен, что этот параметр соблюден IIS7, но поскольку вы видите другое поведение в своей среде разработки из развернутого, это было моим кулаком. Чтобы проверить, если это так, вы можете попробовать запустить свое приложение-разработчик с другого компьютера в вашей сети, если у вас есть такая возможность.
Ответ 4
Я узнал, что раздел <system.webServer>
может пропускать запрос. Затем мое приложение может отображать мою собственную страницу. Вы можете использовать эти строки в Web.Config
:
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
Вы также можете прочитать расширенную версию, чтобы узнать Что ожидать от пользовательского модуля ошибок IIS7.