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