【发布时间】:2011-07-04 04:44:42
【问题描述】:
我有一个在 IIS 7 中运行的 ASP.NET 3.5 站点
我正在尝试让 404 第一次抛出 404 状态代码。
目前如果你输入
http://www.madeupsiteforexample.com/somethingmadeup
您收到 302,然后是 200。
我试图让它第一次抛出 404 代码并显示我设置的 404 页面(/FileNotFound.aspx)
我遇到的问题是 404 页面显示为 200 代码,或者 IIS 在看到 404 状态代码并显示自己可怕的 404 页面而不是我自定义创建的页面时接管。
我尝试使用模块 global.asax 并在我的 404 页面后面的代码上设置状态代码。所有这些都会导致 IIS 接管。
这是我的 Global.asax 实现
protected void Application_Error(object sender, EventArgs e)
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = 404;
}
现在我确实通过 Server.Transferring 我的请求解决了这个问题。
但是,这会导致所有会话为空,并且任何引用 Session 的代码都会导致异常。尝试从资源文件中检索项目的代码也会导致异常。
关于在 IIS7 中执行 404 的“正确方法”有什么建议或文章吗?
【问题讨论】:
标签: asp.net iis-7 http-status-code-404