web-dev-qa-db-ja.com

ASP.NET開発サーバーの代わりにIISにデバッガーをアタッチするにはどうすればよいですか?

ASP.NET Webサイトがあり、F5キーを押すとASP.NET開発サーバーに自動的に接続されますが、F5キーを押すと代わりにIISワーカープロセスに接続するにはどうすればよいですか

68
hmak

プロジェクトのプロパティを開き、Webタブに移動して、IISのオプションを選択します。

これは実際にIISでアプリのインスタンスを開始し、デバッガーをアタッチします。既存のIISインスタンスにのみアタッチしたい場合は、プロセスにアタッチを選択しますデバッグメニュー。

50
StingyJack

デバッグ->プロセスにアタッチ...

リストからaspnet_wp.exeプロセスを選択します。

IIS>バージョン5を実行している場合、プロセスはw3wp.exeになり、すべてのアプリプールに1つ存在します(したがって、どのアプリが不明な場合あなたがヒットしているプール、あなたはそれらのすべてに接続する必要があります)。

96
ckramer

VSメニューから[デバッグ]-> [プロセスにアタッチ]。

接続するw3wp.exeプロセスを知るために、2008サーバーで次のコマンドを使用できます。

c:\%systemroot%\system32\inetsrv\appcmd list wp

Windows 2003では

c:\%systemroot%\system32\cscript iisapp.vbs

詳細については、「 IISアプリケーションプールPID 」を参照してください。

ただし、タスクマネージャー(taskmgr.exe)にアクセスできる場合は、プロセスIDとともにプロセスの名前を直接確認できます。ほとんどの場合、プロセスの「ユーザー名」列はアプリケーションと同じになります。プール名(もちろん、情報を表示するには、これらの列をタスクマネージャーに表示するように設定する必要があります)。

ただし、すべてのメソッドは現在実行中のプロセスのみを表示することに注意してください。つまり、アイドル時間のために特定のプロセスがシャットダウンした場合、リストにプロセスを表示するために最初にサイトを使用する必要があります。

また、アプリケーションが「Web Garden」(複数のw3wp.exeがある)である場合、正しいプロセスにアタッチした後でも、サイトへのトラフィックが別のトラフィックに誘導される可能性があるため、ブレークポイントがヒットする保証はありません。プロセス。

また、リリースモードで実行するアプリケーションにアタッチすると、代わりにデバッグモードで実行されるようになります。これは、たとえば、タイムアウトの制限がないことを意味します(実際にしようとすると、少し問題になる場合があります)タイムアウトエラーのトラブルシューティング)。


リモートプロセスに接続する場合のベストプラクティスは次のとおりです。

  1. 関連するポートを開くか、ファイアウォールを完全に無効にして、ファイアウォールがブロックされていないことを確認します(完了したら、再度有効にすることを忘れないでください)。
  2. リモートマシンの管理者権限を持つWindowsドメインアカウントを持っているか、VSを実行しているローカルマシンと同じユーザー名とパスワードのアカウントをリモートマシンに持っている必要があります。
  3. VSがインストールされているマシンで、(Visual Studioインストールパス)\ Microsoft Visual Studio(現在のバージョン番号)\ Common7\IDE\Remote Debugger(リモートマシンバージョン)に移動し、このフォルダーをコピーしてリモートマシンに貼り付けるか、これを共有しますフォルダを作成して、リモートマシンからアクセスできるようにします。
  4. リモートマシンでローカルマシンと同じユーザー(ステップ2を参照)としてログインし、そこからステップ3のコピーまたは共有フォルダーに移動し、「msvsmon.exe」を右クリックして、コンテキストメニューから「実行」を選択します。管理者」。
  5. Remote Monitorが起動し、通常は(user)@(remote machine)の名前またはその他の名前でサーバーを起動したと主張する必要があります。
  6. VSで、メニューから[デバッグ]-> [プロセスにアタッチ]を選択し、トランスポートを[デフォルト]のままにして、[修飾子名]に手順5の名前を入力します。
    すべてが正常に実行されると、リモートマシン上のプロセスのリストが表示されます。

もちろん、この主題にはもっと多くのことがあり、ネイティブコードをデバッグするためのプロセスはさらに簡単かもしれませんが、ここに挙げた手順はすべての場合に機能するはずです。

詳細については、 http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx またはMSDN、およびこのサイトの多くの投稿をご覧ください。

これが役立つことを願っています。

11
yoel halb

または、 Attach to IIS plugins のいずれかをVisual Studioに使用できます。

推奨される拡張機能はVSCommandsです( VS 2010-2012 または 201 、ただし2015年ではありません)または ReAttach (2017年に機能します)。

7
Jon Adams

webアプリケーションのプロパティに移動します。 「開始オプション」セクションを選択し、「USeデフォルトWebサーバー」から「カスタムサーバーを使用」に変更します。ベースURLに「 http:// localhost 」と入力します。

(VS 2008を想定)

6
Danimal