シナリオ:
Delphi XE、32ビットを使用して記述されたDelphiISAPIdll。
ISAPI dllは、Win764エンタープライズデスクトップマシン上のIIS7.5を介して実行されています。
DLLは正常に動作します。
[実行]->[プロセスにアタッチ]を使用して、DelphiXEIDEでISAPIDLLをデバッグします。
ISAPI DLLを起動し、デバッガーでwpw3.exe * 32プロセスに接続します。ISAPIコンテキストで実行されるコードをトレースして、デバッグできます。
問題:
私のハードドライブは先週故障し、新しいWin7インストールを取得しました。これは企業全体の標準的なWin7 64 Enterpriseイメージです(以前のWin 7 64インストールとは異なります)。
これで、[実行]-> [プロセスにアタッチ]に移動すると、wpw3.exe * 32プロセスが名前で表示されなくなりましたが、タスクマネージャーでは名前で表示されます。[プロセスにアタッチ]ダイアログボックスで[システムプロセスの表示]オプションを呼び出しても効果はありません。
私が今見ているのは(以前の展開ではこれまで見たことのない)、PIDを使用した「一般的な」システムプロセスの長いリストですが、「システム」以外の説明はありません。
これらのプロセスの1つは私のwpw3.exe*32プロセスであり、MSのProcessExplorerを使用してそのPIDを識別しました。しかし、そのプロセスに接続しようとすると、「プロセスを作成できません-アクセスが拒否されました」というエラーメッセージが表示されるため、デバッグできません。(同じエラーメッセージ「エラーを開くプロセス、アクセスが拒否されました」も、特定のプロパティについてProcess Explorerに表示されますが、プロセスの説明的な名前「wpw3.exe * 32」がPIDに関連付けられて表示されます。)
[実行]->[プロセスにアタッチ]ダイアログボックスを表示して、適切なwpw3.exe * 32プロセス名を表示し、それにアタッチして、デバッグできるようにするにはどうすればよいですか?
これはDelphiの問題ですか?IISの問題?ISAPIの問題?これは1つの問題ですか?つまり、説明的なプロセス名の欠如とプロセスにアタッチできないことは、同じ問題が原因です。または、この2つの問題があります。1つは説明的な名前がないこと、もう1つはプロセスに接続できないことです。
(使用したくない-実際には使用できない-このためのwebAppデバッガー-これらは、IISで記述およびデバッグされたとおりに本番環境にデプロイされるISAPI dllです-IISコンテキストで実行されていることを確認する必要があります。)
さまざまなバージョンのDelphiを使用し、さまざまなOSおよびサーバー環境で問題なくISAPI dllを数年間デバッグしてきましたが、これまでこの問題が発生したことはありません。私は困惑しています。