当尝试访问不存在的控制器上的操作时,会在global.asax中的Application_OnError中注册HttpException,并将Response.StatusCode设置为200.
但是,当事后达到Application_EndRequest时,Response.StatusCode将设置为404.
哪个模块负责StatusCode的这种更改。有些东西一直在分析HttpException,虽然我无法根据它确定应该更改为404来弄清楚。
修改
也许我不清楚。我没有将响应代码设置为200.这是我只检查过的,它是由其他东西设定的(大概是MVC)。
答案 0 :(得分:1)
将响应代码设置为200后,您必须忘记清除Application_Error
中的服务器错误:
Server.ClearError();
这就是说,当一个url不存在时返回200 OK状态代码非常反直觉,反SEO并打破HTTP状态协议。