Отключение настраиваемых ошибок IIS8 для классического ASP - потенциальная ошибка в IIS?

Я думаю, что обнаружил ошибку в системе страниц ошибок IIS.

Примечание: - Я не использую страницы ошибок .NET - для этого параметра установлено значение Выкл.

Проблема:

Когда настраиваемая страница ошибки настроена для кода ответа 500.100 (классический ASP), IIS всегда отправляет настраиваемую страницу ошибки, даже если для параметра errorMode установлено значение Подробно. Единственный способ заставить IIS отправить ошибку - явно удалить запись в файле web.config.

EG:

<remove statusCode="500" subStatusCode="100"/>
 or
<clear/>

Примечание: следующее не работает (работает для всех остальных кодов):

<remove statusCode="500" subStatusCode="-1"/>

Мой сценарий:

  • IIS 8 (я не знаю, существует ли проблема в более старых версиях IIS)
  • Веб-сайт под управлением .NET 2.0 - классический конвейер
  • Для делегирования функций на страницах ошибок установлено значение только для чтения
  • Error page setup in IIS as follows (due to the feature delegation above, these entries are not in the web.config):
    • 404 - /path/to/404.htm - ExecuteURL
    • 500 - /path/to/500.htm - ExecuteURL
    • 500.100 - /path/to/500.htm - ExecuteUrl

Отключение пользовательских ошибок:

Все, что мне нужно сделать, чтобы отключить пользовательские ошибки, это:

  • Загрузить IIS
  • Загрузить Error Pages
  • Нажмите Edit Feature Settings
  • Выберите Detailed Errors

Это успешно работает для всех кодов кроме ошибок Classic ASP 500 (код состояния 500.100).

Единственный способ получить правильную классическую ошибку ASP - это настроить следующее (что требует, чтобы я изменил делегирование функции на чтение / запись):

<system.webServer>
    <httpErrors errorMode="Detailed">

        <clear/>  
        OR    
        <remove statusCode="500" subStatusCode="100"/>

    </httpErrors>    
</system.webServer>

Резюме

Похоже, что если настроена настраиваемая страница ошибок 500.100, то установка для Подробных ошибок значения true не работает для ошибок Classic ASP 500.

Это ошибка или я что-то упускаю?


person gregpakes    schedule 19.04.2013    source источник
comment
technet.microsoft.com/en-us/ library / cc753103% 28v = ws.10% 29.aspx Вы не можете использовать настраиваемую страницу ошибок 500.   -  person cfischer    schedule 10.01.2014


Ответы (2)


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

(Я не могу вспомнить, как это называется)

person back_ache    schedule 22.04.2013
comment
Привет, не могли бы вы указать мне, где это известная ошибка? Я не могу найти ничего официального от MS, говорящего об этом. Я наверное ищу не в том месте! Благодарность - person gregpakes; 22.04.2013

Попробуйте изменить свой web.config таким образом (у меня это сработало с IIS 7.5).

Заменить строку

<httpErrors errorMode="Detailed">

с участием

<httpErrors existingResponse="PassThrough" errorMode="Detailed">

Это связано с тем, что по умолчанию IIS7 перехватывает коды состояния HTTP, такие как 4xx и 5xx, генерируемые приложениями, находящимися дальше по конвейеру.

person Gustavo    schedule 27.06.2013
comment
На самом деле это не решает проблему. Вы говорите httpErrors не срабатывать, если существует существующий ответ. - person gregpakes; 27.06.2013