これは、「どうすればこれが機能するのか」という質問よりも、「なぜこれがこのように機能するのか」という問題です。
リモートでデバッグしている WCF Web サービスがあります。これは、VS 2010 リモート デバッガーがインストールされ、Windows サービスとして実行されているステージング サーバーに展開されます。権限は正しく、問題なくプロセスにアタッチできます。私が遭遇した問題は、シンボルを一貫してロードできなかったことです。
C:\Webs\MyService\bin にさまざまな DLL を配置して、WCF サービスを C:\Webs\MyService にデプロイしました。独自のアプリ プールを持つ別のサイトとして設定されます。私が見つけたのは、bin フォルダーに必要な .pdb ファイルがあったとしても、ローカル コンピューターから w3wp.exe プロセスにアタッチすると、Visual Studio はシンボルを読み込まないということです。何が起こっていたのかというと、IIS が起動してワーカー プロセスが生成されたときに、サービス DLL が一時 ASP.NET ファイル ディレクトリの奥深くにコピーされ、C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP のような場所にコピーされていました。 .NET ファイル\root\19f82539\e55fff8f\assembly\dl3\2926a261\f625d158_f62ecd01. .pdb ファイルをこのフォルダーに手動でコピーすると、シンボルが読み込まれ、デバッグを実行できることがわかりました。
なぜそのように機能するのか、シンボルファイルをこの別のディレクトリに手動でコピーする必要がないようにするにはどうすればよいのか疑問に思っています。さらに悪いことに、変更を加えて再デプロイしなければならない場合、ワーカー プロセスはそれらを認識しません。IIS を再起動する必要があったため、別の一時ディレクトリが作成され、.pdb を再度コピーする必要がありました。