Отключение ответа об ошибке сервера 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.
3 ответа
На этот вопрос ответил другой вопрос: IIS7 Hijacks My 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. Выберите "Подробные ошибки" и сохраните.