Выключить обработку ошибок HTTP IIS7? - PullRequest
34 голосов
/ 27 февраля 2010

Я только что настроил свой первый сервер Windows Server 2008 / IIS7.5 для конкурса, в котором я участвую. Не могу на всю жизнь понять, как отключить обработку ошибок ПОЛНОСТЬЮ ,Я вижу только следующие варианты:

  • Пользовательский
  • Подробный
  • Подробный локальный, пользовательский для удаленного

Я хочу включитьполностью отключить, и я не вижу никакого способа сделать это.Я что-то упустил?

Моя ситуация:

У меня есть среда RESTful PHP, которая перехватывает исключения и выдает статус HTTP 500, если исключение еще не было обработано.Затем он помещает указанное сообщение об исключении в тело ответа и отправляет его в браузер.Это хорошо работает в Apache - правильные заголовки отправляются и сообщение отображается пользователю.В IIS, однако, ответ для HTTP-кодов состояния 4xx и 5xx всегда перехватывается и вводится в какое-то другое подготовленное сообщение или файл HTML, и это именно то, чего я больше не хочу.Пожалуйста, помогите!

Ответы [ 2 ]

67 голосов
/ 27 февраля 2010

После более продолжительного поиска я нашел ответ здесь:

http://blogs.msdn.com/webdevelopertips/archive/2009/08/24/tip-93-did-you-know-php-and-custom-error-pages-configuration.aspx

Решение состоит в том, чтобы вручную отредактировать файл web.config с помощью этой пользовательской записи "httpErrors":

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors existingResponse="PassThrough" />
    </system.webServer>
</configuration>

Однако из-за функции «блокировки» IIS 7.0 вы можете получить «Этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне.» Ошибка . Чтобы решить эту проблему, выполните в командной строке следующее:

cd C:\Windows\System32\inetsrv

appcmd unlock config /section:httpErrors
2 голосов
/ 27 февраля 2010

В IIS Manager -> Сайт -> Страницы ошибок щелкните правой кнопкой мыши каждую страницу ошибок и выберите «Удалить».

К сожалению, нет способа запретить IIS вмешиваться со стороны сценария, поэтому это всегда раздражающая проблема развертывания.

...