2010-03-18 3 views
17

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

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

Ошибка 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> 

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

ответ

28

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

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

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

    <httpErrors allowAbsolutePathsWhenDelegated="true" errorMode="Custom" 
          lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> 
    
+1

Невозможно перестраховать вас достаточно. У меня был web.config в моем корневом веб-сайте. удален оттуда. yayayayayayaya !!!!!!!! – Joel

+0

http://stackoverflow.com/questions/4358339/how-to-prevent-iis7-for-handling-http-status-code-401 – Jared314

+0

У меня есть iis7.5 и vs2013, и это свойство не разрешено в файле конфигурации , пытаясь нажать на это, ошибка все же появляется. – DanielV

2

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

1

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

1

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

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

Смежные вопросы