我正在使用IIS 7.5在Windows 2008 R2上运行ASP.Net 4站点。
开发时我也使用Windows 7和VS 7.0与IIS 7.5。
我已经设置了我的web.config:
<customErrors mode="On" defaultRedirect="~/Error500.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="~/Error404.aspx"/>
</customErrors>
我的Error404.aspx页面在代码隐藏中有这个:
protected void Page_Load(object sender, EventArgs e)
{
Response.StatusCode = 404;
}
在我的开发人员计算机上,这工作正常,我在浏览器中看到了我的错误,并且使用Fiddler我可以确认我只收到404 HTTP状态。
现在,当我将它发布到我的服务器时,这是一个不同的故事。在这里,我将看到IIS自己的404页面(“C:\ inetpub \ custerr \ en-US \ 404.htm”)
如果我删除代码隐藏中的Response.StatusCode,我会在服务器上获得错误,尽管有200 HTTP状态。
我忽视了什么,因为这不起作用?