ASP.NET Webサイトがあり、F5キーを押すとASP.NET開発サーバーに自動的に接続されますが、F5キーを押すと代わりにIISワーカープロセスに接続するにはどうすればよいですか
プロジェクトのプロパティを開き、Webタブに移動して、IISのオプションを選択します。
これは実際にIISでアプリのインスタンスを開始し、デバッガーをアタッチします。既存のIISインスタンスにのみアタッチしたい場合は、プロセスにアタッチを選択しますデバッグメニュー。
デバッグ->プロセスにアタッチ...
リストからaspnet_wp.exeプロセスを選択します。
IIS>バージョン5を実行している場合、プロセスはw3wp.exeになり、すべてのアプリプールに1つ存在します(したがって、どのアプリが不明な場合あなたがヒットしているプール、あなたはそれらのすべてに接続する必要があります)。
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がある)である場合、正しいプロセスにアタッチした後でも、サイトへのトラフィックが別のトラフィックに誘導される可能性があるため、ブレークポイントがヒットする保証はありません。プロセス。
また、リリースモードで実行するアプリケーションにアタッチすると、代わりにデバッグモードで実行されるようになります。これは、たとえば、タイムアウトの制限がないことを意味します(実際にしようとすると、少し問題になる場合があります)タイムアウトエラーのトラブルシューティング)。
リモートプロセスに接続する場合のベストプラクティスは次のとおりです。
もちろん、この主題にはもっと多くのことがあり、ネイティブコードをデバッグするためのプロセスはさらに簡単かもしれませんが、ここに挙げた手順はすべての場合に機能するはずです。
詳細については、 http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx またはMSDN、およびこのサイトの多くの投稿をご覧ください。
これが役立つことを願っています。
または、 Attach to IIS plugins のいずれかをVisual Studioに使用できます。
推奨される拡張機能はVSCommandsです( VS 2010-2012 または 201 、ただし2015年ではありません)または ReAttach (2017年に機能します)。
webアプリケーションのプロパティに移動します。 「開始オプション」セクションを選択し、「USeデフォルトWebサーバー」から「カスタムサーバーを使用」に変更します。ベースURLに「 http:// localhost 」と入力します。
(VS 2008を想定)