设置Response.StatusCode = 404
在 IE8 和 Chrome 下都不提供内容?虽然我觉得很奇怪,但它在 Mozilla 中有效!
做最简单的事情 - 空的 asp.net Web 应用程序项目和空的 Default.aspx 页面。在 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 的花哨的自定义错误消息.
使用提琴手表明我实际上是在服务请求,但浏览器完全忽略了它?!
我的问题 - 我如何设置 404 状态代码并仍然呈现页面内容?示例 - http://www.intel.com/invalidpage.wow。使用 fiddler 显示此页面提供 404 状态代码。