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

Конфигурация ошибок IIS7 и удаленные ошибки

Определенный IIS7 / 7.5 500.19 ошибки конфигурации отображаются только в браузере, работающем на локальном сервере.

Это происходит независимо от того, установил ли я <httpErrors errorMode="Detailed" existingResponse="PassThrough" /> в system.webServer раздел сайта web.config файл (или даже глобально в этом отношении).

Например, у меня был разработчик, который сообщил, что он просто получил общую страницу с ошибкой IIS7 500:

Это происходило, несмотря на то, что в его web.config:

<configuration>
  <system.webServer>
    <httpErrors errorMode="Detailed" existingResponse="PassThrough" />
  </system.webServer>
</configuration>

Если я захожу на сайт на самом сервере, я вижу (некоторая конфиденциальная информация удалена):

Причина этого в том, что если web.config содержит ошибки, поэтому не может быть проанализирован. Потому что он не может быть проанализирован локальным <httpErrors> параметр не читается и, таким образом, приводит к тому, что IIS возвращается к настройкам по умолчанию (например, DetailLocalOnly)?

Обновить:

@LazyOne - предложил установить вышеуказанный конфиг на уровне сервера, который я уже пробовал. В результате было получено всего 500 ошибок:

Покопавшись еще немного, я придумал, как получить 500.19 ошибки появляться удаленно, даже если сайт web.config затирается.

Хитрость заключается в том, чтобы установить (глобально) errorMode="Detailed" и existingResponse="Replace".

В existingResponse="Replace" настройка немного интуитивно понятна, но имеет смысл.