【发布时间】:2018-12-19 22:06:02
【问题描述】:
我正在使用类似的 URL http://localhost:52200/< 和 http://localhost:52200/<xyz 测试自定义错误处理。不知何故,我得到了不一致的结果。
Web.Config:
<!--MVC pipeline-->
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error.aspx">
<error statusCode="404" redirect="~/404.aspx" />
<error statusCode="500" redirect="~/500.aspx" />
</customErrors>
<!--IIS pipeline-->
<httpErrors errorMode="Custom">
<remove statusCode="404"/>
<error statusCode="404" path="404.html" responseMode="File"/>
<remove statusCode="500"/>
<error statusCode="500" path="500.html" responseMode="File"/>
</httpErrors>
customErrors mode="Off" 时,都返回相同的HTTP 400 Bad Request:
但是,当customErrors mode="On" 时,只有http://localhost:52200/< 返回HTTP 400 Bad Request,然后重定向到Error.aspx。
现在,http://localhost:52200/<xyz 返回HTTP 500 Internal Server Error 并转到:
当我删除ResponseRewrite 时,两者都返回HTTP 302 Found 并重定向到Error.aspx。我不想要这个,因为我丢失了 http 错误代码。
我做错了什么?
【问题讨论】:
标签: asp.net-mvc iis http-error custom-errors