0

Global.asax に次のコードがあります。

void Application_EndRequest(object sender, EventArgs e)
{
    HttpApplication application = sender as HttpApplication;
    HttpContext context = application.Context;
    string path = context.Request.Path;
    string contentType = context.Response.ContentType;

    System.Diagnostics.Debug.WriteLine("-----------------------------------");
    System.Diagnostics.Debug.WriteLine("Path: " + path);
    System.Diagnostics.Debug.WriteLine("ContentType:" + contentType);    
}

サイトのルート (~/Help) に、静的な .htm ファイルを含む Help フォルダーがあります。これらのファイルのすべてが EndRequest を介して実行されているわけではないことに気付きました。ページ内のアセット (.js ファイルなど) がログに記録されているのに、htm ファイル自体がログに記録されていないことがあります。時々、ログに記録されます。

これらのファイルのすべてが EndRequest を介して実行されないのはなぜですか?どうすれば確実に実行できますか?

4

1 に答える 1

0

最終的に、私の構成は次のようになります。

  • AppPool パイプライン: 統合
  • RouteExistingFiles: false (デフォルト)
  • runAllManagedModulesForAllRequests: true

このすべてが、私がこの質問を書いたときの様子でした。私が違うことをしたのは、web.configに移動し、手動でハンドラーを以下に追加することでした<httpHandlers>:

<add verb="GET,HEAD,POST,DEBUG" path="*.htm" type="System.Web.UI.PageHandlerFactory" />

私をうんざりさせていたのは、ファイルがダウンした後、ブラウザがそれをキャッシュし、再要求しなかったことです(キャッシュをクリアするまで)。

于 2014-06-17T19:59:22.963 に答える