asp.net - IIS7 404错误

标签 asp.net iis-7 http-status-code-404

我有一个在 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 为空,并且任何引用 session 的代码都会导致异常。尝试从资源文件中检索项目的代码也会导致异常。

关于在 IIS7 中执行 404 的“正确方法”的任何建议或文章?

最佳答案

我在 iis 7 上也遇到了这个问题。你可以试试这个,因为它对我有用......

<httpErrors existingResponse="PassThrough" />

这个人也遇到了和你一样的问题。 IIS7 Overrides customErrors when setting Response.StatusCode?

这是对正在发生的事情的解释 http://www.fidelitydesign.net/?p=21

关于asp.net - IIS7 404错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115740/

相关文章:

asp.net - Linq 'contains' 查询耗时过长

c# - Asp.net MVC4 强制路由参数

asp.net - 使用 jQuery Ajax 将参数传递给 WebMethod

c# - 当 iis 是主机时,wcf 应用程序上的 iis 是否调用了 Global.asax 的 Application_Start?

django - 使用 Django 测试客户端测试预期的 404 会导致未处理的异常

asp.net - 回发 Bootstrap 字体大小更改后(增加)

asp.net - 为特定 URL 提供 app_offline.htm 时,将 http 状态 503 更改为 200

iis-7 - 在实时服务器上设置多个测试站点

c# - ASP.NET MVC : How to serve content while returning status code 404?

php - Symfony3 404 NotFoundHttpException