Назад | Перейти на главную страницу

Отключение ответа сервера IIS 7.5 при ошибке для кодов состояния HTTP 5xx и 4xx

Есть ли способ запретить IIS автоматически переопределять вывод веб-приложения, которое возвращает код состояния в диапазоне 500 или 400?

В качестве примера в ColdFusion я могу создать следующую страницу:

<cfheader statuscode="500" statustext="Error">
Sorry, an error occurred.

Поведение должно заключаться в том, что я вижу страницу с сообщением «К сожалению, произошла ошибка». и увидите в заголовках, что код состояния - 500.

Вместо этого я вижу:

Server Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

В прекрасном стиле IIS.

Я попытался просто удалить страницу пользовательского статуса 500, но это просто привело к:

The page cannot be displayed because an internal server error has occurred.

Без какого-либо прекрасного стиля.

Похоже, это происходит с любой страницей, которая возвращает код, который не находится в диапазоне 200 или 300.

На это был дан ответ в другом вопросе: IIS7 захватывает мою страницу ошибки Coldfusion

Кажется, что решение меняет конфигурацию, так что IIS игнорирует ошибку и позволяет ей пройти, поэтому параметр

    <httpErrors existingResponse="PassThrough" />

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

Обновить

Посмотри пожалуйста мой обновленный ответ в другом аналогичном вопросе чтобы узнать почему и как на эту проблему нет рабочего ответа.

Очевидно, есть способ сделать это с помощью Response.TrySkipIisCustomErrors. Приведенный ниже пример взят со страницы aspx, но его следует адаптировать к вашему варианту использования.

Следующий веб-контент слишком обширен, чтобы его можно было здесь воспроизвести.

http://www.west-wind.com/weblog/posts/2009/Apr/29/IIS-7-Error-Pages-taking-over-500-Errors

Вот что определенно работает: 1. Откройте страницы ошибок для веб-сайта или приложения 2. Нажмите «Изменить параметры функции» в действиях справа 3. Выберите «Подробные ошибки» и сохраните