9

我的示例项目中有一个图像文件。我正在尝试如下 URL。

http://localhost:49334/Chrysanthemum.jpg

Application_BeginRequest event我的文件中有一个Global.asax

protected void Application_BeginRequest(Object sender, EventArgs e)
{
}

查询- 当我通过直接输入上面的 URL 来请求上面的图像时,不会触发此事件。


FROM MSDN - HttpApplication.BeginRequest 事件- 当 ASP.NET 响应请求时,作为 HTTP 执行管道链中的第一个事件发生。

I want to make my all request to fire `Application_BeginRequest` Event
4

1 回答 1

5

问题可能是因为 .jpg 扩展名默认未映射到 asp.net 并且由 IIS 处理。

如果您使用 IIS7,您可以通过将 runAllManagedModulesForAllRequests 设置为 true 来更改此设置。

<system.webServer>
 <modules runAllManagedModulesForAllRequests="true">
  ...
 </modules>
</system.webServer>

如果仍然没有触发此事件,您可以尝试像这样更改 global.asax

<%@ Application Language="C#" %>

<script runat="server">

    public override void Init()
    {
        this.BeginRequest += new EventHandler(global_asax_BeginRequest);        
        base.Init();
    }

    void global_asax_BeginRequest(object sender, EventArgs e)
    {

    }    

</script>

如果您只想处理 .jpg 文件,更好的方法是制作 HTTP 处理程序并配置web.config 中的system.webServer > handlerssystem.web > httpHandlers部分来为 .jpg 请求运行此处理程序。

于 2012-05-03T05:25:21.490 回答