响应StatusCode从200变为404

时间:2013-12-10 13:12:05

标签: asp.net asp.net-mvc asp.net-mvc-4 http-status-code-404

当尝试访问不存在的控制器上的操作时,会在global.asax中的Application_OnError中注册HttpException,并将Response.StatusCode设置为200.

但是,当事后达到Application_EndRequest时,Response.StatusCode将设置为404.

哪个模块负责StatusCode的这种更改。有些东西一直在分析HttpException,虽然我无法根据它确定应该更改为404来弄清楚。

修改

也许我不清楚。我没有将响应代码设置为200.这是我只检查过的,它是由其他东西设定的(大概是MVC)。

1 个答案:

答案 0 :(得分:1)

将响应代码设置为200后,您必须忘记清除Application_Error中的服务器错误:

Server.ClearError();

这就是说,当一个url不存在时返回200 OK状态代码非常反直觉,反SEO并打破HTTP状态协议。