インターネット サーバー拡張 DLL を書かれている場合は、拡張が呼び出された後その実行、ブレークポイントの設定、またはモニターの変数の値をトレースすることができますので、デバッガーで実行を得ることに興味があります。Microsoft インターネット インフォメーション サーバー (IIS) を取得して、デバッガーで DLL を実行しては少しトリッキーです。最初の制御の設定では、DLL をデバッグすることができます静かなサーバーを検索する必要があります。このようなリソースを見つけたら、DLL をデバッグを開始することができます。
バージョン 3.0 と 4.0 IIS の間の違いのため、DLL のデバッグに使用するバージョンを知ることが重要です。
インターネット サーバー拡張 DLL を IIS 3.0 を使用してデバッグする手順に従います:
-e W3Svc
デバッグのヒント
はるかに容易にデバッグ、対話型のアプリケーションとしては、IIS を実行できます。これを行うにはいくつかの変更をシステムにする必要があります。サーバーを実行しているユーザー アカウントをいくつかの特権を追加する必要があります。
特権を追加するには、ユーザー マネージャーを実行します。(Windows NT 3.51 を使用している場合は、MUSRMGR を実行します。EXE。Windows NT 4.0 を使用している場合は、USRMGR を実行します。EXE。)ユーザー権利ポリシー ] メニューの [から] をクリックします。高度なユーザー権利の表示チェック ボックスを選択します。オペレーティング システムの一部として動作する、右側のドロップダウン リストから選択し、ユーザー アカウントを追加。
このセキュリティ監査の生成のプロセス (もで、右側のドロップダウン リスト) を繰り返します。すべてのインターネット サービス (WWW、ftp、および gopher) が停止していることを確認し、INETINFO。EXE が実行されていない (TLIST を使用して確認する)。ログオフして再度ログオンします。[コマンドラインを IIS を読み込むことができます。:
INetInfo.Exe-e W3Svc
デバッガ (たとえば、WinDbg) の下で IIS をロードするには、次のコマンドラインを使用します。:
WinDbg INetInfo.Exe-e W3Svc
あなたは行く用意ができています。Visual C では、デバッグを [ビルド] メニューをポイントし、[移動] をクリックします。このアクション、WWW 発行サービスを開始し、デバッガーは DLL 内のシンボルの認識されます。ファイルにデバッグ情報がないと、警告を無視することができます。
Visual C を閉じると、INETINFO のワークスペースを保存します。EXE。その方法は、デバッグ セッションの設定を再入力を回避できます。ちょうど、INETINFO を開きます。デバッガーを再び開始する準備ができたらの MDS ワークスペース ファイル。
キャッシュされた Dll
HKEY_LOCAL_MACHINE/システム/CurrentControlSet/サービス/W3SVC/パラメーター/彼らが使用されるたびに Dll の再初期化、サーバーに CacheExtensions レジストリ設定を調整できます。この設定が 1 の場合は、サーバーは可能な限りのメモリに読み込まれる Dll を維持します。以来、ピーク パフォーマンスを達成するため、サーバーことができます、デバッグ用のサーバーを使用している場合にのみ変更する必要がありますこれは、サーバーの既定の設定です。設定をする場合 0、サーバーは常に拡張 Dll が読み込ま彼らが使われるたびに。
DLL を再読み込みするようにサーバーを強制は、DLL は、クラッシュまたはそれを保持すべてインスタンス単位のデータを動揺させる可能性があるときに役立ちます。DLL の再初期化するようにサーバーを強制することによって、あなたを DLL に少しの努力で予測可能な状態に取り戻すことができます。通常の CacheExtensions 設定を使用して、DLL、ただし、ことを確認する DLL 内のコードは初期の状態に完全に依存ないをテストすることを確認します。
IIS 4.0 またはそれ以降を使用して、サーバー コンポーネントとインターネット サーバー拡張 Dll のデバッグ環境を確立するには、数とおりの方法があります。Windows NT プロセスにアタッチできるデバッガーを使用している場合は、コンポーネントまたは拡張機能をデバッグするにはこの機能を使用することができます。Visual C でをデバッグしている場合は、たとえば、次の手順します。:
使用しているデバッガーを Windows NT プロセスにアタッチできない場合は、適切なデバッグ環境を設定するには、次の手順を取る:
デバッガー lt; = DebuggerExeName > DebuggerExeName、デバッガーへの完全パスは、使用しています。
World Wide Web 発行サービスが開始されると、デバッガも起動します。今、インターネット サーバー拡張 DLL の適切なブレークポイントを設定できます。
コンポーネントはメモリに読み込まれているまで、コンポーネントのソース コードにブレークポイントを設定することができなくなります。これを行うには、Internet Explorer と表示を開始をします。オブジェクトを含む ASP ページ。ページが読み込まれるとすぐに、コンポーネントにブレークポイントを設定することができる必要があります。ページを再度表示するには更新をクリックし、選択したブレークポイントをトリガーします。場合 (例えば、障害コンポーネントのスタートアップ コードで発生する場合)、コンポーネント一度も読み込むことができません、デバッグ セッションを開始する前に、コンポーネント DLL をロードする必要があります。(ステップ 11 の下を参照してください)。
いくつかのケースでは、上記 2 つの手順のいずれかを使用できない場合があります。これらの戦略のいずれかを使用してがある場合は、IIS の以前のリリースに記載されている、3 番目のアプローチです。この 3 番目のアプローチには、Windows NT のセキュリティ特権の確立し同様、レジストリに変更を加える必要があります。それも IIS をサービスとして実行する機能を無効にします。このアプローチは、前の 2 つの方法が失敗した場合にのみ使用します。
F196-11d0-9953-00c04fd919c1 ・ ・ WAMREG の IIS admin サービス
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752}//IIS Admin Crypto 拡張機能
{A9E69610-B80D-11D0-B9B9-00A0C922E750} ・ ・ IISADMIN サービス
LocalService キーワードは AppID の追加のサブキーにあります。
C:\WINNT\System32\Inetsrv\Inetinfo.exe
-e w3svc
注特価;デバッグ セッションを完了した後、以前の設定を復元し、IIS をサービスとして実行するを許可する 1 から 5 の手順をリバースする必要があります。(&N)。
番号順テクニカル ノート|nbsp;カテゴリ別テクニカル ノート(&N)