ASP.NETをリモートデバッグ

こんにちはマツダです。
ASP.NETアプリケーションをリモートデバッグする方法をご紹介します。

各バージョン

  • Windows Server 2016
  • IIS 10.0
  • .NET Framework 4.6

Remoteツールをインストール

「Remote Tools for Visual Studio 2019(x64)」をIISを動かすサーバ側にインストールします。
https://visualstudio.microsoft.com/ja/downloads/
の「Visual Studio 2019 のツール」の「Remote Tools for Visual Studio 2019」からダウンロードしてインストールください。

Remoteツールの設定

スタートメニューから「Remote Debugger Configuration Wizard」を起動します。
以下の通り設定します。

remote01
remote02

Remoteサービスの起動確認

Visual Studio 2019 Remote Debuggerサービスが起動していることを確認します。
remote03

ASP.NETアプリケーションの準備

Visual Studio 2019で新規ASP.NET(Web Forms)アプリケーションを作成します。
今回はデフォルトのWebApplication1.slnのDefault.aspxに以下のようにテストボタンを追加しました。

 

そしてWebApplication1.slnを発行し、サーバ側のIISに配置して動作するようにしておきます。
※構成をReleaseで発行するとリモートデバッグできなかったので、構成はDebugで発行ください。

リモートデバッグ

ローカルのVisual StudioでWebApplication1.slnを開き、メニューの「デバッグ」→「プロセスにアタッチ」を選択します。
接続先に「サーバのIP:4024」を入力し、エンターを押し、管理者ユーザ名/パスワードを入力します。
※事前にサーバ側のFWで4024番ポートを許可しておいてください。(またはVisualStudioリモートデバッガーをプログラムとして許可)
remote04

プロセス一覧でw3wp.exeを選択しアタッチをクリックします。
※w3wp.exeが複数ある場合は対象のWebApplication1のプロセスを選択します。
remote05

ボタンクリックのイベントにブレイクポイントを設定し、サーバのWebApplication1にブラウザでアクセスし、テストボタンをクリックしてポストバックさせます。
ローカルのVisual Studioでブレイクポイントにヒットすることを確認します。
remote06

終わり

無事リモートデバッグすることができました。
サーバでしか発生しないバグの調査などに活用できるんじゃないかと思います。

LINEで送る
Pocket