Visual Studio 2010を使用して、ローカルマシンでasp.net MVCプロジェクトをデバッグします。手順は次のとおりです。
[デバッグ]をクリックし、プロセス "w3wp.exe"を接続してみます。ただし、リストにはありません。
「すべてのセッションのプロセスを表示」がクリックされていると確信しています。
実行中のWebアプリケーションのインスタンスが実際に存在しない限り、w3wp.exeは実行中のプロセスに表示されません。
最初にWebページにアクセスしてみてください。初めて表示されたら、デバッガをアタッチしてみてください。プロセスが表示されます。
タスクマネージャーリストの下部にある[すべてのユーザーからプロセスを表示]をクリックする必要があります。これは私がする必要があったものです。
「すべてのユーザーのプロセスを表示」をチェックしてみてください。左下の「プロセスにアタッチ」ウィンドウに「すべてのユーザーのプロセスを表示」チェックボックスがあります。
GoTo Webプロジェクトのプロパティ->左側のサイドバーで(Web)を選択->(サーバー)ヘッダーの下のGoTo->ドロップダウンをクリックして"Local IIS"
を選択
そして適用します。次に、デバッグを開始すると、プロセスリストにw3wp.exeが表示されます。
私の場合、Visual Studioを管理者モードで開いていないため、w3wp.exeがリストに表示されませんでした。
管理者モードでVisual Studioを開いたとき、それは機能しました。
Visual Studio->管理モードで開くを右クリックします。
動作する簡単な方法は、w3wpがリストに表示されない場合、ブラウザを開いてlocalhostに書き込み、入力します。その後、w3wpがリストに表示されます。
Advanced Rest Clientのようなものを使用してルートをテストしている場合は、ルートを再度呼び出してからプロセスのリストを更新すると表示されます
私の場合、Webプロジェクトを再構築し、接続タイムアウト(秒単位)の制限を引き上げると、[プロセスリストへのデバッグ/接続]に自動的に表示され、機能し続けます。
私はこの問題に出くわしました-ホスト設定も再確認し、実際に本番サーバーではなくローカルホストを指していることを確認したいかもしれません。
リモートサーバーを指していることを忘れていたため、サイトにアクセスしていてもローカルではないため、表面が実行されているのを表面的に見ることができたにもかかわらず、w3wpは実行されていませんでした。
私の場合、あるVisual Studioから別のVS studioウィンドウから実行されるプロセスに接続する必要がありました。
次は問題でした。1つのVSが管理者権限で起動されました。この問題を解決するには、管理パーマで両方のVSを起動する必要があります。
管理者としてリモートデバッガーを実行します。私はすべての提案に従って問題を解決しましたが、管理者としてリモートデバッガーを実行するまでw3wpプロセスを確認できませんでした。
これらのすべてのフープをジャンプした後でも(Webブラウザーを使用してインスタンスを開始し、管理者としてリモートデバッグセッションを開始し、「すべてのユーザーを表示」がオンになっていることを確認し、サーバーにいないことを確認してください)農場など)、あなたはまだ時々不運かもしれません。
リモートプロセス(通常は私の場合はWCFサービス)が、アタッチするプロセスのリストに表示されないことがありますが、それについて実行できることは何もありません。ターゲットプロセスを特定のアプリプールにのみ保持することで、ターゲットプロセスを容易に識別できるように常に注意しています。時々、ここからは行けないことがあります。これは間違いなく、Microsoftがこれまでに行ったリモートデバッグで最もイライラすることです。
私の場合、問題はVisual Studioを管理者として実行していないことでした。更新後にマシンが再起動し、以前に実行していたすべてのプロセスを再起動しましたが、VSを非管理モードでのみ再起動しました。 VSを管理者モードで再起動すると、デバッグ用にw3wp.exeプロセスが再び利用可能になりました。
私の経験を将来の読者にも共有したいと思います。
Webサーバークラスター構成(負荷分散など)がある場合、w3wp
プロセスが開始されない可能性があることに注意してください。期待するのと同じマシン。
Webサイトがsingle IIS instanceでのみ実行するように設定されていない限り、w3wp
プロセスが起動する可能性がありますWebクラスター内の他のマシンの1つ。
これは、ネットワーキングチーム/部門からの誤った構成、または意図した動作である可能性があります。構成方法を正確に特定するために必要な経験はありません。
関連するページもMSDNで見つけました。
次の手順を試してください。
ソリューションエクスプローラーから仮想パスを作成します。
Inetmgrに移動して、独自のプールが作成されたことを確認します。
プロセスのアタッチ(Ctrl + Alt + P)に進み、すべてのユーザーのプロセスを表示します。
その後、w3wp.exeが表示されます。