カスタムセッション状態管理を行う単純な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.aspxとhttp://learn.iis.net/page.aspxのように拡張されることを理解しています。 / 243 / aspnet-integration-with-iis7 /
製品には従来のパイプラインを使用しています。しかし、それでも他の人が何を経験したかを知ることに興味があります。
質問2:IIS7を統合モードで使用すると、パフォーマンスが低下しますか?パイプラインに接続しているモジュールがいくつかあるとすると、パフォーマンスにどの程度の影響がありますか?誰かがこれのために行われたいくつかのベースライン研究を私に指摘することができればいいでしょう。