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

2 Answers 2

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?).

Sign up to request clarification or add additional context in comments.

5 Comments

Unfortunately, defaultPath attribute of httpErrors seems to be locked down in Azure.
@Ghasan, what if we host application in azure or aws will this work ?
@RakeshSadhula, I don't have experience with either. But judging from Triynko comment, it might not be working on Azure.
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.
@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.
-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>

2 Comments

I tried customErrors but I couldn't get it to work. so switched to httpErrors.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.