设置Response.StatusCode = 404
不提供IE8和Chrome下的内容?虽然我发现它很奇怪但它在Mozilla中有效!
做最简单的事情 - 使用空的Default.aspx页面清空asp.net Web应用程序项目.在Page_Load事件中使用以下内容:
protected void Page_Load( object sender, EventArgs e ) { Response.StatusCode = 404; }
这有效地将当前请求的状态代码设置为404,毫无疑问.在IE8或Chrome下渲染时,或者也可能是其他一些浏览器 - 我还没有测试过,实际页面根本没有显示.这些浏览器显示其默认的404错误页面(不是默认的IIS自定义错误).IE8中的示例:
The webpage cannot be found HTTP 404 Most likely causes: •There might be a typing error in the address. •If you clicked on a link, it may be out of date. ... and so on ...
我真正想要做的是提供404错误页面,其中包含404错误代码,实际上会告诉浏览器或爬虫或者此页面不存在的任何人 - 不仅要显示一些带有状态消息的精美自定义错误消息200 OK .
使用fiddler表明我实际上真的在服务请求,但是浏览器完全无视它?!
我的问题 - 如何设置404状态代码并仍然呈现页面内容?示例 - http://www.intel.com/invalidpage.wow.使用fiddler显示此页面提供404状态代码.
默认情况下,如果错误的响应小于可配置的数量,IE将显示其自定义错误页面.我相信金额是512字节,但我会尝试找到一些确认.因此,您需要做的就是在响应中添加更多内容.
编辑:这篇博客文章描述了限制.其中一条注释显示了用于更改这些值的注册表项设置.关键是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\ErrorThresholds