以下は、それほど大それた話ではありません。新しい話ですらありません。自分用のメモです。
ASP.NETプロジェクトからHTTPモジュールを動作させる手順は昔と比べて大幅に簡単になったようです。
具体的には、「チュートリアル カスタム HTTP モジュールを作成および登録する」に書かれています。
更にかなり嬉しいのは、ASP.NET 開発サーバーでもHTTPモジュールが動くこと。Visual Studio 2008から「ファイルシステム」で作成したWebサイトはIISではなく、ASP.NET 開発サーバーで動作しますが、これでもOK。
具体的には、上記リンク先のページの中で、「IIS 6.0 および IIS 7.0 のクラシック モードでの HTTP モジュールの登録」の手順を取ることで動作可能になります。
悩ましいのは §
とはいえ、悩ましいこともあります。
「IIS 6.0 および IIS 7.0 のクラシック モードでの HTTP モジュールの登録」と「IIS 7.0 統合モードでの HTTP モジュールの登録」では、web.configに書き込む位置が異なること。
しかし、Visual Studio 2008が生成するweb.configを見ると、双方の要素が用意されていて、両方に書き込んでおくのが良さそうな雰囲気です。
つまり、IIS 7.0で動かないというトラブルを避けるには、忘れずに両方にadd要素を書いておく方が良さそう。
(2011/10/31追記。これはバッドアイデア。両方書いてあるとIIS7.5で動かない問題に遭遇。ASP.NET 開発サーバーではなくIISを使ってデバッグするのが正解のようです。Windows 7ならローカルのIISもIIS7.5なので。切り替えるには、プロジェクトのプロパティで設定を変更するだけ。その際、Visual Studioを管理者権限で動かしておく必要があります。これでIIS6時代のマシンは使わないとすれば上手く行くようです)。
感想 §
最近はあまりASP.NETに正面から取り組んでいなかったので(古いソフトのメンテはVisual Studio .NET 2003でやっていたぐらい)、ASP.NETの進化に目を白黒 (笑。
HTTPモジュールの扱いがこれほど簡単になっていたのなら、とっとと開発環境を変えておけば良かったかも。