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

В IIS 7: как настроить документ об ошибке по умолчанию для любой ошибки

Я бы хотел использовать error.html для любых ошибок, с которыми может столкнуться IIS.

Если я укажу следующий блок в своем webconfig, сайт откажется запускаться.

<httpErrors errorMode="DetailedLocalOnly" existingResponse="Replace" defaultPath="/error.html" defaultResponseMode="ExecuteURL">
    <remove statusCode="500" subStatusCode="-1" />
    <remove statusCode="404" subStatusCode="-1" />
    <remove statusCode="403" subStatusCode="-1" />
    <remove statusCode="401" subStatusCode="-1" />
    <error statusCode="401" prefixLanguageFilePath="" path="/401.html" responseMode="ExecuteURL" />
    <error statusCode="403" prefixLanguageFilePath="" path="/403.html" responseMode="ExecuteURL" />
    <error statusCode="404" prefixLanguageFilePath="" path="/404.html" responseMode="ExecuteURL" />
    <error statusCode="500" prefixLanguageFilePath="" path="/500.html" responseMode="ExecuteURL" />
</httpErrors>

Обратите внимание на атрибут defaultPath = "/ error.html" в корневом элементе.

Я получаю следующую ошибку

HTTP-Fehler 500.19 - внутренняя ошибка сервера
...
Konfigurationsfehler: Sperrverletzung
...

Отредактируйте% windir% \ system32 \ inetsrv \ config \ applicationHost.config

Установите линию:

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">

Кому:

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated">

Попробуйте использовать диспетчер IIS 7, чтобы установить это правильно. Кроме того, вы могли бы сделать это:

<system.web>
    <customErrors mode="On" defaultRedirect="~/error.html">
    </customErrors>
</system.web>

В дополнение к ответу Фабиана вы также можете найти этот файл в:

папка решения -> .vs (обычно эта папка скрыта) -> config