5

カスタムセッション状態管理を行う単純なHTTPModuleがあります。

public void Init(HttpApplication context)
        {
            context.AcquireRequestState += new EventHandler(ProcessBeginRequest);
            ActivityLogger.LogInfo( DateTime.UtcNow.ToLongTimeString() + " In Init " + HttpContext.Current.Request.Url.AbsoluteUri);
        }

public void ProcessBeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = sender as HttpApplication;
            ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest ");
            if (application != null)
            {
                string requestURL = application.Context.Request.Url.ToString();
                ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest " + requestURL);
            }
            return;
        }

ブレークポイントを使用してこのコードを実行すると、images、js、cssなどの静的ファイルに対してもこのモジュールが呼び出されることがわかりました。誰かがこれを経験しましたか?HTTPモジュールは、asp.netページのhttpパイプラインのイベントにのみフックしていると思います。また、静的リソースに接続しますか?それともカッシーニだけですか?

環境:VS2008-cassiniサーバー

PS:サンドボックスのWin2k8 IIS7(ちょっと新しい)で試してみて、ログファイルに書き込もうとしましたが(VSがないため)、ログファイルに書き込めませんでした。書き込み権限の問題があることを確認してください。W2k8でIIS7を使用してASP.netを実行するときに、ディレクトリの書き込みアクセス許可を設定する方法を教えてくれるリソースを誰かに教えてもらえますか?

編集1:統合パイプラインを使用すると、静的リソースと管理対象リソースのhttpパイプラインが http://aspnet.4guysfromrolla.com/articles/122408-1.aspxhttp://learn.iis.net/page.aspxのように拡張されることを理解しています。 / 243 / aspnet-integration-with-iis7 /

製品には従来のパイプラインを使用しています。しかし、それでも他の人が何を経験したかを知ることに興味があります。

質問2:IIS7を統合モードで使用すると、パフォーマンスが低下しますか?パイプラインに接続しているモジュールがいくつかあるとすると、パフォーマンスにどの程度の影響がありますか?誰かがこれのために行われたいくつかのベースライン研究を私に指摘することができればいいでしょう。

4

2 に答える 2

14

やり方もあるらしい

http://learn.iis.net/page.aspx/121/iis-70-modules-overview/#Disabling

設定preCondition="managedHandler"<modules runAllManagedModulesForAllRequests="false" />て、トリックを行います

自己メモ: http://code.google.com/p/talifun-web/wiki/StaticFileHandler は、この StaticFileHandler を調べる必要があります

参照:

http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/

IIS7 で静的コンテンツの実行から HttpModule を除外する

バグ: IIS7 マネージド リクエスト

http://msdn.microsoft.com/en-us/library/bya7fh0a.aspx

于 2010-01-22T23:06:56.043 に答える
0

はい、どのタイプのファイルに対しても呼び出されます。

これらのモジュールでは、興味のないものを除外するのが一般的です。HttpContext.Request.Url.AbsolutePath に SharePoint の「/_layouts」が含まれているかどうかを確認します。

于 2010-01-21T20:50:00.190 に答える