読者です 読者をやめる 読者になる 読者になる

sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

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のアプリなら、どれでもプロセスにアタッチするだけで簡単にリモートデバッグができるぽいです。