2013-07-21 4 views
5

クラシックパイプラインモードで.NET 4.0を実行しているIIS 7.5 Webサイトがあります。Application_BeginRequestはプロダクションサーバーでJPGに対して起動されません

私はイメージが呼び出された場合に単純なデフォルト画像の設定を作成しているが、物理的なファイルは、要求がApplication_BeginRequestイベントに次のコードを使用して、デフォルトのイメージにリダイレクトされて存在しません:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if (Request.PhysicalPath.EndsWith(".jpg") && File.Exists(Request.PhysicalPath) == false) 
    { 
     Context.RewritePath("~/images/nophoto.jpg"); 
    } 
} 

この私のVS2010 devサーバーで正常に動作しますが、実稼働環境ではApplication_BeginRequestイベントはJPGリクエストに対して呼び出されず、標準のHTTPエラー404.0 - Not Foundエラーが表示されます。

私がtrueにweb.configファイルrunAllManagedModulesForAllRequestsオプションを設定しようとしたが、これは助けるために表示されません。

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

私の理解から、これはすべての要求は、.NETを経るため、トリガーさせなければなりませんApplication_BeginRequestイベント?

望ましい結果:

私は、Application_BeginRequestイベントがJPGのみのために呼び出され、何の画像が見つからない場合、デフォルトの画像が返されるように、すべてのリクエストは、.NETを通過したいと思います。

答えて

3

クラシックモードでは発生しません。統合モードに切り替える必要があります。

This記事は洞察を提供するかもしれません。

+0

ありがとうございました! – antfx

関連する問題