.NET MVC配置自定义错误页时遇403错误与重定向循环如何解决?
.NET MVC 自定义404错误页配置问题排查与解决
问题背景
在标准.NET MVC应用中,尝试通过web.config的<httpErrors>节点配置自定义404错误处理,初始配置代码如下:
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace" defaultResponseMode="Redirect"> <clear /> <error statusCode="404" path="http://localhost/E_HealthCare_Web/Views/Error/NotFound404" responseMode="Redirect" /> </httpErrors> </system.webServer>
配置后虽能触发重定向,但出现HTTP 403错误,提示“您无权查看此目录或页面”,初步推测是IIS权限问题,但无法定位具体解决方式。
中间排查问题
按照建议改用绝对URL后,出现“localhost重定向次数过多”的无限循环错误,清除Cookie也无法解决。
最终解决方案
感谢@LexLi和@JennyDai的建议,将web.config中的错误页路径修改为符合MVC路由规则的地址,彻底解决了问题,修改后的关键配置如下:
<error statusCode="404" path="http://localhost/E_HealthCare_Web/Error/NotFound404" responseMode="Redirect" />
关键原因分析
- 初始路径直接指向Views目录下的视图文件,违反了MVC的路由规则——MVC不允许直接访问Views目录内的文件,这是导致403权限错误的核心原因。
- 无限重定向循环是因为错误页路径不符合路由规则时,会再次触发404错误,导致IIS不断重复重定向操作,形成循环。
内容的提问来源于stack exchange,提问作者Salman Abbas
相关产品推荐
相关产品推荐

