ASP.NET Webアプリケーションをリモートデバッグしてみました
リモートで動いているASP.NET Webアプリケーションを、 VisualStudioから簡単にデバッグできるというのを知って試してみました。
単にローカルのデータを入れ替えるのが面倒だったのですが・・・
手順
うちの環境はIIS8.5とVisualStudio2015ですが、
リモートの IIS 7.5 コンピューター上の ASP.NET のリモート デバッグ
シンボル (.pdb) ファイル、ソース ファイル、およびバイナリ ファイルの検索
この2つのページの解説にしたがうだけでOKでした。
事前準備
- Webアプリケーションをリモートサーバに配置
- シンボルファイルのフォルダを、外部から参照できるように共有
pdbファイルがないとうまくbreak point仕掛けられないため、あらかじめ"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\" あたりをreadonly で共有設定しておきます。 - VisualStudioにシンボルファイルの場所を設定
VisualStudioでプロジェクトを開き、 デバッグ - オプション で デバッグのシンボルのところに 共有設定を行ったリモートのシンボルファイルの場所を設定してやります。 - Remote Toolsをリモートサーバにインストール
Remote Debugging にしたがってツールをダウンロード&インストール
デバッグ開始
- リモートデバッガ起動
リモートサーバ上で、リモートデバッガを管理者として起動 - VisualStudioでプロセスをアタッチ
デバッグ - プロセスにアタッチ で、リモートサーバのw3wp.exe にアタッチ。 - デバッグ
VisualStudioでbreak pointを設定し、普通にブラウザでアクセスしてデバッグ
初めてリモートでデバッグしてみましたが、思ったより簡単でびっくりでした。 もっと早く試してみればよかった・・・
ちなみに、ASP.NETだけでなく、.NET Frameworkのアプリなら、どれでもプロセスにアタッチするだけで簡単にリモートデバッグができるぽいです。