2008年08月08日
川俣晶の縁側ソフトウェア技術雑記 total 5809 count

ASP.NET 開発サーバーでHTTPモジュールを動作させる方法

Written By: 川俣 晶連絡先

 以下は、それほど大それた話ではありません。新しい話ですらありません。自分用のメモです。

 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モジュールの扱いがこれほど簡単になっていたのなら、とっとと開発環境を変えておけば良かったかも。