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 > handlersおよびsystem.web > httpHandlersセクションを構成して、.jpg 要求に対してこのハンドラーを実行することをお勧めします。

于 2012-05-03T05:25:21.490 に答える