【发布时间】:2013-06-08 16:29:49
【问题描述】:
为什么当您打开自定义错误时,asp.net 会从没有自定义错误时执行正常的 404 响应变为响应 302 或 200?
例如,我尝试了以下所有方法:
<customErrors defaultRedirect="Error.aspx" mode="Off">
<error statusCode="404" redirect="Error.aspx?status=404" />
</customErrors>
和
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/error.aspx?status=404" responseMode="ExecuteURL" />
</httpErrors>
和
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/error.aspx?status=404" responseMode="Redirect" />
</httpErrors>
据我所知,第一个在重定向到错误页面时给出了 302,第二个给出了 200 出于某种原因,最后一个也给出了 302。这似乎很愚蠢,因为我仍然想要一个 404 (或任何其他错误代码),但显示友好的消息。
我意识到我可以用我的错误页面发回不同的响应,但这似乎将 404 代码提供给错误页面,并将 302 保留在原始请求中。
除非我错过了什么......
【问题讨论】:
标签: asp.net http iis http-response-codes