3

How can I set 404 and other error pages using web.config? I have tried adding following block in 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>

but still its showing default error page of IIS7. How to fix this?

4 Answers 4

10

I solved it myself. We need to add another section in web.config like below to make it work in IIS 7 / 7.5. For IIS 6 the one works which I mentioned in my question

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

Thanks to everyone who answered.

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

Comments

1

Try putting this in the system.webServer section of your Web.config

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>

Comments

0

Try to add the "~/" before paths:

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

1 Comment

Let me correct my question, it works as it is, in Visual Studio's internal server but does not work when i run under IIS. any specific reason?
0

It looks like you're using a relative path there. Could that be the problem?

Try using Fiddler to see what page your browser is being redirected to.

1 Comment

Let me correct my question, it works as it is, in Visual Studio's internal server but does not work when i run under IIS. any specific reason?

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.