Реализация страницы пользовательских ошибок на веб-сайте ASP.Net - PullRequest
18 голосов
/ 29 января 2010

У меня есть веб-сайт ASP.Net, и я хочу использовать пользовательскую страницу ошибок. Я поместил следующий код в мой web.config

<customErrors mode="On" defaultRedirect="~/error.aspx">
    <error statusCode="404" redirect="~/error.aspx" />
</customErrors>

Проблема в том, что когда я захожу на URL, который не существует, он все еще использует страницу ошибки 404, указанную в диспетчере IIS.

Вопрос: Как я могу использовать созданную мной страницу error.aspx? Почему настройки в IIS Manager переопределяют web.config?

Ответы [ 5 ]

26 голосов
/ 29 января 2010

Попробуй так, почти так же .. но это то, что я сделал, и работает.

<configuration>
    <system.web>
       <customErrors mode="On" defaultRedirect="apperror.aspx">
          <error statusCode="404" redirect="404.aspx" />
          <error statusCode="500" redirect="500.aspx" />
       </customErrors>
    </system.web>
</configuration> 

или попробуйте изменить страницу ошибки 404 из настроек IIS, если требуется срочно.

7 голосов
/ 01 августа 2014

Существует 2 способа настройки пользовательских страниц ошибок для сайтов ASP.NET:

  1. Диспетчер информационных служб Интернета (IIS) (GUI)
  2. файл web.config

В этой статье объясняется, как сделать каждый:

Причина, по которой ваша error.aspx страница не отображается, может быть вызвана ошибкой в ​​вашем файле web.config. Попробуйте вместо этого:

<configuration>
   <system.web>
      <customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
         <error statusCode="404" redirect="error.aspx"/>
      </customErrors>
   </system.web>
</configuration>

Возможно, вам необходимо убедиться, что Error Pages в IIS Manager - Делегирование функций установлено на Чтение / запись :

IIS Manager: Feature Delegation panel

Кроме того, этот ответ может помочь вам настроить файл web.config:

1 голос
/ 28 января 2014
<customErrors defaultRedirect="~/404.aspx" mode="On">
    <error statusCode="404" redirect="~/404.aspx"/>
</customErrors>

Код выше предназначен только для «Страница не найдена ошибка-404», если известно расширение файла (.html, .aspx и т. Д.)

Кроме того, вы также установили ошибки клиента для расширения, которое неизвестно или неверно указано как

.aspwx или .vivaldo. Вы должны добавить httperrors настройки в web.config

<httpErrors  errorMode="Custom"> 
       <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx"         responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>

должно быть внутри <system.webServer> </system.webServer>

0 голосов
/ 03 мая 2019

Это орфографическая ошибка в вашем закрывающем теге, например:

</CustomErrors> instead of </CustomError>?
0 голосов
/ 09 апреля 2018
<system.webServer>     
<httpErrors errorMode="DetailedLocalOnly">
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
    </httpErrors>
</system.webServer>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...