Asp.net - Web.Config - Пользовательские ошибки - PullRequest
3 голосов
/ 04 августа 2011

Как я могу установить 404 и другие страницы ошибок, используя web.config? Я попытался добавить следующий блок в web.config.

     <customErrors defaultRedirect="Forms/Errors/Page_404.aspx" mode="On">
    <error statusCode="500" redirect="servererror.aspx" />
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="Forms/Errors/Page_404.aspx" />
    </customErrors>

, но по-прежнему отображается страница ошибки IIS7 по умолчанию. Как это исправить?

Ответы [ 4 ]

10 голосов
/ 19 августа 2011

Я решил это сам.Нам нужно добавить другой раздел в web.config, как показано ниже, чтобы он работал в IIS 7 / 7.5.Для IIS 6 работает тот, который я упомянул в моем вопросе

<system.webServer>
...
<httpErrors errorMode="Custom" >
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="/404.aspx" responseMode="Redirect" />
<error statusCode="403" path="/403.aspx" responseMode="Redirect" />
<error statusCode="500" path="/500.aspx" responseMode="Redirect" />         
</httpErrors>
...
</system.webServer>

Спасибо всем, кто ответил.

1 голос
/ 04 августа 2011

Попробуйте поместить это в раздел system.webServer вашего Web.config

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>
0 голосов
/ 04 августа 2011

Похоже, вы используете относительный путь там. Может ли это быть проблемой?

Попробуйте использовать Fiddler, чтобы увидеть, на какую страницу перенаправляется ваш браузер.

0 голосов
/ 04 августа 2011

Попробуйте добавить "~ /" перед путями:

 <customErrors defaultRedirect="~/Forms/Errors/Page_404.aspx" mode="On">
<error statusCode="500" redirect="~/servererror.aspx" />
    <error statusCode="403" redirect="~/NoAccess.htm" />
    <error statusCode="404" redirect="~/Forms/Errors/Page_404.aspx" />
</customErrors>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...