Я просто получил настройки на своем первом сервере Windows Server 2008 / IIS7.5 для конкурса, в котором я участвую. Я не могу ни за что в жизни выяснить, как выключить обработку ошибок ПОЛНОСТЬЮ. Единственные опции, которые я вижу:
Я хочу выключить функцию полностью, и я не вижу способа сделать это. Я пропускаю что-то?
Моя ситуация:
У меня есть УСПОКОИТЕЛЬНАЯ платформа PHP, которая ловит исключения и испускает состояние HTTP 500, если исключение не было уже обработано. Это тогда помещает указанное сообщение об исключении в орган по ответу и отправляет его в браузер. Это хорошо работает в Apache - корректные заголовки отправляются, и сообщение отображено пользователю. В IIS, однако, ответе для 4xx и 5xx Коды состояния HTTP всегда прерываются и вводятся с некоторым другим подготовленным сообщением или файлом HTML, и это точно, что я не хочу, чтобы это больше делало. Помогите!
После более тщательного поиска я нашел ответ здесь:
Решение состоит в том, чтобы вручную отредактировать файл 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
В диспетчере IIS -> Сайт -> Страницы ошибок щелкните правой кнопкой мыши каждую страницу с ошибкой и выберите «Удалить».
К сожалению, нет способа запретить IIS вмешиваться со стороны сценария, поэтому это всегда раздражает проблему развертывания.