Asp.net - Web.Config - Custom Errors

旧城冷巷雨未停 提交于 2019-12-01 23:15:57

问题


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?


回答1:


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.




回答2:


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

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



回答3:


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>



回答4:


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.



来源:https://stackoverflow.com/questions/6939371/asp-net-web-config-custom-errors

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!