Как добавить страницу ошибки по умолчанию с помощью httpErrors

Я успешно добавил пользовательскую страницу 404. что я хочу сделать, так это создать еще одну пользовательскую страницу ошибок, которая отображается при возникновении любой ошибки, кроме 404. например. 500, 403 и т.д.

это то, что у меня сейчас есть в webconfig

<httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL"/>
    </httpErrors>

person btevfik    schedule 27.03.2013    source источник
comment
проверьте эту ссылку здесь, возможно, это поможет вам http://www.iis.net/configreference/system.webserver/httperrors/error   -  person Mingebag    schedule 27.03.2013


Ответы (2)


О, мой. Не могу поверить, что не смог найти правильный ответ на этот простой вопрос! Тем не менее, после 2-х часов чтения документации и отладки я нашел его.

<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" defaultPath="/App/Error"> <!-- Do not include ~, this was my issue all long -->
  <clear/> <!-- so that IIS provided error pages are skipped -->
  <!-- add those which you like to provide a view of yours -->
  <error path="/App/Http404" responseMode="ExecuteURL" statusCode="404"/>
  <error path="/App/Http503" responseMode="ExecuteURL" statusCode="503"/>
</httpErrors>

Имейте в виду, что <httpErrors> настраивает IIS, а <customErrors> настраивает ASP.NET и некоторые более старые версии IIS (‹=6?).

person Ghasan غسان    schedule 06.11.2014
comment
К сожалению, атрибут defaultPath для httpErrors кажется заблокированным в Azure. - person Triynko; 12.04.2016
comment
@Ghasan, что, если мы разместим приложение в azure или aws, это сработает? - person Light; 24.06.2019
comment
@RakeshSadhula, у меня тоже нет опыта. Но, судя по комментарию Трийнко, это может не работать на Azure. - person Ghasan غسان; 24.06.2019
comment
Что меня спасло, так это комментарий о том, что тег «Пользовательские ошибки» работает для asp.net, большинство результатов Google посоветовали мне избавиться от него. - person Osias Jota; 02.12.2020
comment
@OsiasJota ‹customerrors› для IIS6‹ ‹httpErrors› для IIS7+ (пока до IIS10). ‹httpErrors› переопределяет ‹customErrors›. ‹customErrors› не может обрабатывать некоторые ошибки, такие как 500 и 403. ‹httpErrors› работает на уровне IIS, ‹customErrors› работает на уровне приложения. - person Paul Zahra; 04.03.2021

Вы можете использовать customErrors в webconfig:

<customErrors mode="On" defaultRedirect="~/DefaultError.aspx?msg=SomeMessage">
  <error statusCode="404" redirect="~/PageNotFound.html"/>
  <error statusCode="403" redirect="~/AccessDenied.html"/>
</customErrors>
person mehdi    schedule 27.03.2013
comment
Я пробовал customErrors, но не смог заставить его работать. поэтому переключился на httpErrors. - person btevfik; 27.03.2013
comment
так что вы можете увидеть это http://stackoverflow.com/a/7729351/2114572 - person mehdi; 27.03.2013