Ошибка 500.19 в IIS7 при возникновении ошибки
Настройка: Windows 7, IIS7. Я работаю над приложением, которое просматривается через локальный сервер IIS, а не встроенный веб-сервер отладки. Поэтому мой URL-адрес приложения http://localhost/foo/bar.aspx
. В моем web.config нет раздела <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>
Как я могу избавиться от этой ошибки конфигурации, чтобы увидеть подробные ошибки?
Ответы
Ответ 1
Я занимался этой проблемой в течение последних нескольких дней и нашел решение. Файл Web.Config скорее всего укажет абсолютный путь для одной из страниц ошибок. Это не может быть Web.Config приложения, которое вы тестируете. Для меня это был файл веб-сайта Web.Config.
-
Если вы обнаружите оскорбительный файл Web.Config, вы можете удалить абсолютный путь, и проблема должна быть исправлена.
-
Намного проще было бы изменить файл ApplicationHost.Config, чтобы установить свойство allowAbsolutePathsWhenDelegated
в true
:
<httpErrors allowAbsolutePathsWhenDelegated="true" errorMode="Custom"
lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
Ответ 2
У меня была такая же проблема, когда я установил службы сертификации Active Directory на контроллер домена. Оба они использовали порт 443. Я меняю один для служб сертификатов на IP-адрес сервера и оставляю неназначенный сервер обмена. Это решило мою проблему.
Ответ 3
У меня была такая же проблема в IIS 8.5. Исправлено удаление любых записей в файле web.config(расположенном в корневом каталоге веб-сайта), который ссылался на страницы пользовательских ошибок. Записи были созданы системой, когда я попытался внести изменения в пользовательские страницы.
Ответ 4
Что помогло мне решить эту ошибку, установите для параметра allowAbsolutePathsWhenDelegated
значение true.
Перейдите в IIS > Редактор конфигурации > в разделе Тип: system.webServer/httpErrors
и установите allowAbsolutePathsWhenDelegated
на true. Reset IIS для хорошей оценки.