How to add a default error page using httpErrors
Asked Answered
M

2

8

i have successfully added a custom 404 page. what I want to do is to create another custom error page that is displayed when there is any error other than 404. e.g. 500, 403 etc.

this is what I have right now in webconfig

<httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL"/>
    </httpErrors>
Microreader answered 27/3, 2013 at 8:50 Comment(1)
checkout this link here maybe this gone help you iis.net/configreference/system.webserver/httperrors/errorBerniecebernier
D
15

Oh, my. I cannot believe I could not find a proper answer for this simple question! Nevertheless, after 2 hours of reading the docs and debugging, I found it.

<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>

Beaware that <httpErrors> configures IIS, while <customErrors> configures ASP.NET and some older versions of IIS (<=6?).

Digitalin answered 6/11, 2014 at 10:29 Comment(5)
Unfortunately, defaultPath attribute of httpErrors seems to be locked down in Azure.Outcurve
@Ghasan, what if we host application in azure or aws will this work ?Triode
@RakeshSadhula, I don't have experience with either. But judging from Triynko comment, it might not be working on Azure.Obeisance
What saved me was the comment that the tag Custom errors works for asp.net, most google results told me to get rid of it.Pilgrimage
@OsiasJota <customerrors> is for IIS6< <httpErrors> is for IIS7+ (all the way until IIS10 so far). <httpErrors> overrides <customErrors>. <customErrors> cannot deal with some errors such as 500 and 403. <httpErrors> operates at IIS level, <customErrors> runs at application level.Sphincter
N
-1

You can use customErrors in webconfig :

<customErrors mode="On" defaultRedirect="~/DefaultError.aspx?msg=SomeMessage">
  <error statusCode="404" redirect="~/PageNotFound.html"/>
  <error statusCode="403" redirect="~/AccessDenied.html"/>
</customErrors>
Nunciature answered 27/3, 2013 at 8:56 Comment(2)
I tried customErrors but I couldn't get it to work. so switched to httpErrors.Microreader
so you can see this https://mcmap.net/q/1325624/-example-of-configuration-for-lt-httperrors-gtNunciature

© 2022 - 2024 — McMap. All rights reserved.