2

ユーザーが実行中のプロセスにアタッチしてデバッグできるようにする Visual Studio 2010 の機能を使用しようとしています。w3wp.exe プロセスにアタッチしています。ここに私の問題があります: DefaultAppPool にアタッチすると、ブレークポイントにヒットできません (「ブレークポイントは現在ヒットされません。このドキュメントにはシンボルが読み込まれていません」)。しかし、クラシック .NET アプリケーション プールを使用して接続すると、ブレーク ポイントが機能します (少なくとも、ブレーク ポイントは機能しました)。

私の問題は、クラシック .NET アプリケーション プールが [プロセスにアタッチ] ダイアログ ボックスのオプションとして表示されない場合があることです。マシンの IIS (7) に移動し、アプリケーション プールを確認して、両方のアプリケーション プールが実行されていることを確認しました。また、「接続先:」設定を「マネージド (v4.0) コード」から「マネージド (v2.0、v1.1、v1.0) コード」に変更しようとしました。違いはないようです(変更するたびにリストを更新します)。

クラシック アプリ プールが [プロセスにアタッチ] リストに表示されることがありますが、常に表示されるとは限らない理由を誰か説明できますか?

これはすべて、Visual Studio でアプリケーションを正常にデバッグできなかったためです。(このスレッドを参照してください)「シンボルが読み込まれていません」というエラーを回避するために何日も働きました。しかし、同僚が自分のマシンでアプリケーションをデバッグしているときに (彼にとってはうまくいきます)、デバッグ >> Windows >> モジュールで「PDB ファイルが見つからないか、開くことができません」というエラーがたくさんあることに気付きましたが、彼のブレークポイントはまだ機能しています。だから、それは問題ではないと思います。

1 つのメモ。私の同僚は IIS 6 を使用していますが、私は IIS 7 を使用しています。これが、クラス アプリケーション プールが一時的に機能した理由だと思います。なんとかしてまたくっつけられたら…

4

2 に答える 2

3

デバッグ PDB を出力するプロファイルを使用してプロジェクトをビルドし、web.config でデバッグが有効になっていることを確認します<compilation debug="true">

アタッチする必要があるアプリ プールは、アプリ プールの名前に関係なく、アプリケーションが実行されているアプリ プールです。

于 2013-07-02T20:19:06.173 に答える
2

いくつかのヒント:

1) [ビルド] タブのプロジェクト プロパティで、[コードの最適化] チェックボックスがオフになっていることを確認します。デバッグしようとしているアセンブリと一緒に pdb があることを確認してください。

2) 正しいワーカー プロセスを探す場合、(管理者として) appcmd list wp を実行して、正しいプロセス ID を取得できます。

3) リモート デバッガーが (適切なビット数で) 実行されていることを確認します。

4) モジュール ウィンドウを確認し、デバッグしようとしているアセンブリが読み込まれていることを確認します。ロードしない場合 (右クリック)。

すべてを試した後、親切にアドバイスしてください。

于 2013-07-02T20:21:58.297 に答える