500.19 ошибка в IIS7 при возникновении ошибки - PullRequest
18 голосов
/ 18 марта 2010

Настройка: Windows 7, IIS7. Я работаю над приложением, которое просматривается через локальный сервер IIS, а не через встроенный веб-сервер отладки. Так что URL моего приложения http://localhost/foo/bar.aspx. В моем web.config есть раздел no <customErrors>, и я не изменил никаких настроек в IIS.

Если возникает какая-либо ошибка, я всегда получаю следующее сообщение об ошибке:

Ошибка HTTP 500.19 - Внутренняя ошибка сервера
Абсолютный физический путь "C:\inetpub\custerr" недопустим в разделе system.webServer/httpErrors в файле web.config. Вместо этого используйте относительный путь.

Вот мое applicationhost.config содержание:

<httpErrors errorMode="Custom" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
  <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" />
  <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" />
  <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" />
  <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" />
  <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" />
  <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" />
  <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" />
  <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" />
  <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" />
</httpErrors>

Как мне избавиться от этой ошибки конфигурации, чтобы я мог видеть подробные ошибки?

Ответы [ 4 ]

30 голосов
/ 02 апреля 2010

Я занимался этой проблемой последние несколько дней и нашел решение. Вероятно, в файле Web.Config указан абсолютный путь для одной из страниц ошибок. Это может быть не Web.Config приложения, которое вы тестируете. Для меня это был файл Web.Config веб-сайта.

  1. Если вы нашли нарушающий файл Web.Config, вы можете удалить абсолютный путь, и проблема должна быть исправлена.

  2. Гораздо более простым решением было бы изменить файл ApplicationHost.Config , чтобы установить для свойства allowAbsolutePathsWhenDelegated значение true:

    <httpErrors allowAbsolutePathsWhenDelegated="true" errorMode="Custom" 
                lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
    
2 голосов
/ 14 февраля 2011

У меня была такая же проблема, когда я установил службы сертификатов Active Directory на контроллере домена. Оба они использовали порт 443. Я изменил один для служб сертификации на IP-адрес сервера и оставил сервер обмена неназначенным. Это решило мою проблему.

1 голос
/ 02 февраля 2016

Что помогло мне решить эту ошибку, так это установить для allowAbsolutePathsWhenDelegated значение true.

Перейдите на IIS> Редактор конфигурации> в разделе Тип: system.webServer / httpErrors и установите allowAbsolutePathsWhenDelegated в true . Сброс IIS для хорошей меры.

1 голос
/ 21 апреля 2015

У меня была такая же проблема в IIS 8.5. Исправление заключалось в удалении любых записей в файле web.config (находится в корневом каталоге веб-сайта), которые ссылались на пользовательские страницы ошибок. Записи были созданы системой, когда я пытался внести изменения в пользовательские страницы.

...