如何以编程设置Response.StatusCode超过200种不同OK在ASP.NET应用程序中,继续为内容,以客户端成功?

StackOverflow https://stackoverflow.com/questions/1473855

设置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。

使用招表明,我居然真的服务请求,但浏览器完全忽略它?

我的问题 - 我怎样才能设置404状态码,并且仍然呈现网页内容?实施例 - http://www.intel.com/invalidpage.wow 。使用招表明,该页面是送达404个状态码。

有帮助吗?

解决方案

默认情况下IE将显示它是定制的错误页面,如果该错误的响应小于一个可配置的量。我相信量为512个字节,但我会尽量找一些这方面的确认。因此,所有你需要做你的反应是把更多的内容。

编辑:博客文章描述的限制。一位评论显示改变这些值的注册表项设置。最关键的是:

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Internet Explorer \ MAIN \ ErrorThresholds

其他提示

您不服务的内容,您可以在Web服务器级别设置自定义错误页(IIS),或在asp.net的情况下,web.config中

scroll top