【问题标题】:Static file requests don't raise application_error event静态文件请求不会引发 application_error 事件
【发布时间】:2011-04-15 03:04:32
【问题描述】:

在我的 Asp.Net MVC 项目中,我正在处理 Http FileNotFound 异常(对于丢失的图像),然后将请求重定向到如下所示的默认图像

  protected void Application_Error(object sender, EventArgs e)
    {
        if (Request.Path.StartsWith("/images/profile"))
        {

            Response.Redirect("/images/profile/default.jpg", true);
            return;
        }
    }

当我调试我的网站时,它正在开发环境中工作。但是当我将它部署到运行 IIS 7.5 的生产服务器时,此代码不起作用,对图像文件的请求不会触发 Application_Error 事件。 IIS上有什么配置吗?我找不到问题。

【问题讨论】:

    标签: asp.net asp.net-mvc error-handling application-error


    【解决方案1】:

    您需要配置 IIS 以通过 ASP.Net 运行所有请求。

    在 Web.config 中将 <modules runAllManagedModulesForAllRequests="true" /> 添加到 <system.webServer>


    此外,您应该为此添加路由,而不是处理 Error 事件。

    【讨论】:

    • +1 这个问题和你的回答让我意识到我一直在做出一个愚蠢的假设,即 404 错误在某种程度上与 IIS 处理它们的方式不同。
    • 感谢您的回答,我的 system.webServer 中有 。必须有其他配置。你的意思是为此添加一条路线。
    • 很好的答案,所以我们将在每个请求上通过 asp.net 管道发送所有静态文件请求,这样我们就可以处理Application_Error 中的 404 请求。假设我们是有逻辑的人,那我们该怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2011-10-09
    • 2023-01-21
    • 1970-01-01
    • 2019-12-13
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多