Web/DB プログラミング徹底解説

ホーム > IIS 徹底解説 > ページレベル HTTP モジュール rhttpmod.dll の動作確認

ページレベル HTTP モジュール rhttpmod.dll の動作確認

スポンサーリンク

概要

ここでは当サイト内 「ページレベル HTTP モジュールの開発 (サンプルコード)」 で作成した、 サンプル ページレベル HTTP モジュール DLL (rhttpmod.dll) の動作確認を行います。

rhttpmod.dll は、オブジェクトの生成・破棄の様子及びリクエストを処理した様子をデバッグトレースに出力します。

トレースの表示には DebugView を使います。 DebugView の Capture Global Win32 オプションが有効であることを確認してください。

尚、rhttpmod.dll では、何をリクエストされても C:\Temp\index.htm をレスポンスとして返します。 C:\Temp\wwwroot\index.htm をあらかじめ用意しておいて下さい。

動作確認

  1. DebugView を起動します。Capture Global Win32 オプションが有効であることを確認してください。

  2. サーバー上で Internet Explorer (IE) を起動して、http://localhost/ を要求します。

    このコンテンツは確かに C:\Temp\wwwroot\index.htm です。

    これを二回繰り返し、net stop w3svc で W3SVC を停止させます。

  3. すると、下図のように rhttpmod.dll からのトレースが DebugView に出力されます。

また、サービスの停止ではなくワーカープロセスをリサイクルしたときは以下のようなログになりました。

つまり、ファクトリオブジェクトがワーカープロセス終了時に破棄されています。

以上、まとめると、以下の流れであることが確認できました。

  1. ファクトリオブジェクトはモジュールの読み込み時に一度作成される。
  2. CHttpModule からの派生クラスは、そのオブジェクトがリクエスト毎に生成・破棄を繰り返す。
  3. ワーカープロセスの停止時 (明示的なリサイクルまたはサービス停止時等) に、ファクトリオブジェクトが破棄される。
スポンサーリンク
ホーム > IIS 徹底解説 > ページレベル HTTP モジュール rhttpmod.dll の動作確認