2012-05-03 12 views
8

サンプルプロジェクトに画像ファイルがあります。私は以下のURLを試しています。ASP.Net Lifecycle Request - Application_BeginRequest

http://localhost:49334/Chrysanthemum.jpg

私は私のGlobal.asaxファイルにApplication_BeginRequest eventを持っています。

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

クエリ - 私は直接上記のURLを入力して、上の画像を要求すると、このイベントが解雇されていません。


FROM MSDN - HttpApplication.BeginRequest Eventは - ASP.NETが要求に応答するとき、実行のHTTPパイプラインチェーン内の最初のイベントとして生じます。

I want to make my all request to fire `Application_BeginRequest` Event 
+0

IIS 6または7を使用していますか? – MikeM

+0

本当に、IIS7と統合されたアプリケーションプールを使用していることを確認してください。 –

答えて

4

問題はおそらく、.jpg拡張子がデフォルトでasp.netにマップされておらず、IISによって処理されているためです。

IIS7を使用している場合、これを変更するには、runAllManagedModulesForAllRequestsをtrueに設定します。

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

このイベントが発生していない、まだ場合、あなたは、あなただけの.jpgファイルを処理したい場合は、この

<%@ 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> 

ようGlobal.asaxの変更より良い方法を試すことができますは、HTTPハンドラを作成し、を設定することですsystem.webServer>ハンドラsystem.web> httpHandlers web.configのセクションで、.jpgリクエストに対してこのハンドラを実行します。

+0

Web.Configでこのコードを設定するPitFallsについて教えてください。 – Pankaj

+0

落とし穴は?ハンドラの詳細については、こちらのURLを参照してください:http://support.microsoft.com/kb/308001 –

+0

リンクをありがとうございます。このリンクは、 ' ' – Pankaj

関連する問題