Azure の Visual Studio で IIS 上の ASP.NET Core をリモート デバッグする

このガイドでは、Visual Studio ASP.NET Core アプリを設定して構成し、Azure を使用してアプリを IIS に配置して、Visual Studio からリモート デバッガーをアタッチする方法について説明します。

IIS のシナリオでは、Linux はサポートされていません。

Azure 上でリモート デバッグする際の推奨される方法は、シナリオによって異なります。

  • Azure App Service 上で ASP.NET Core をデバッグするには、スナップショット デバッガーを使用した Azure アプリのデバッグに関するページを参照してください。 これが推奨される方法です。

  • 従来のデバッグ機能を使用して Azure App Service 上で ASP.NET Core をデバッグするには、このトピックの手順を実行してください (Azure App Service 上のリモート デバッグに関するセクションを参照してください)。

    このシナリオでは、Visual Studio から Azure にアプリを配置する必要がありますが、次の図に示すように、IIS またはリモート デバッガー (これらのコンポーネントは点線で表されています) を手動でインストールまたは構成する必要はありません。

    Visual Studio、Azure App Service、ASP.NET アプリの関係を示す図。 IIS とリモート デバッガーは点線で表されています。

  • Azure VM 上で IIS をデバッグするには、このトピックの手順を実行してください (Azure VM 上のリモート デバッグに関するセクションを参照してください)。 これにより、IIS のカスタマイズされた構成を使用できますが、設定と配置の手順はより複雑になります。

    Azure VM の場合は、次の図に示すように、アプリを Visual Studio から Azure に配置する必要があります。また、IIS ロールとリモート デバッガーを手動でインストールする必要もあります。

    Visual Studio、Azure VM、ASP.NET アプリの関係を示す図。 IIS とリモート デバッガーは実線で表されます。

  • Azure Service Fabric 上で ASP.NET Core をデバッグするには、「リモートの Service Fabric アプリケーションをデバッグする」を参照してください。

警告

このチュートリアルの手順を完了したら、作成した Azure リソースを必ず削除してください。 これで、不要な料金の発生を回避できます。

必須コンポーネント

この記事に記載されている手順を実行するには、Visual Studio 2019 以降のバージョンが必要です。

この記事に記載されている手順を実行するには、Visual Studio 2017 が必要です。

ネットワーク要件

プロキシ経由で接続された 2 台のコンピューター間のデバッグはサポートされていません。 待機時間の長い接続や低帯域幅の接続 (ダイヤルアップ インターネットなど)、または国をまたぐインターネット経由のデバッグは推奨されません。これらは、障害が発生するか、または過度に低速になる可能性があります。 詳細な要件の一覧については、「要件」を参照してください。

Visual Studio コンピューター上で ASP.NET Core アプリケーションを作成する

  1. 新しい ASP.NET Core Web アプリケーションを作成します。

    Visual Studio 2019 で、スタート ウィンドウの [新しいプロジェクトの作成] を選択します。 スタート ウィンドウが開いていない場合は、 [ファイル] > [スタート ウィンドウ] を選択します。 「Web アプリ」と入力し、言語として C# を選択します。次に、 [ASP.NET Core Web Application (Model-View-Controller)](ASP.NET Core Web アプリケーション (Model-View-Controller)) を選択し、 [次へ] を選択します。 次の画面で、プロジェクトに「MyASPApp」という名前を指定し、 [次へ] を選択します。

    推奨されるターゲット フレームワークまたは .NET 6 を選択し、 [作成] を選択します。

    Visual Studio 2017 で、 [ファイル] > [新規] > [プロジェクト] を選択し、次に [Visual C#] > [Web] > [ASP.NET Core Web アプリケーション] を選択します。 ASP.NET Core テンプレート セクションで、 [Web アプリケーション (モデル ビュー コントローラー)] を選択します。 [ Docker サポートを有効に する] が選択されておらず、認証 が [認証なし] に設定されている場合は、ASP.NET Core 2.1 以降が選択されていることを確認します。 プロジェクトに「MyASPApp」と名前を付けます。

  2. About.cshtml.cs ファイルを開き、OnGet メソッドにブレークポイントを設定します (以前のテンプレートでは、代わりに HomeController.cs を開き、About() メソッドにブレークポイントを設定します)。

Azure App Service 上で ASP.NET Core をリモート デバッグする (Windows)

Visual Studio からは、Windows 上の Azure App Service に自分のアプリをすばやく公開してデバッグすることができます。これは、完全にプロビジョニングされた IIS のインスタンスに基づいています。 VM 上で IIS をホストしている場合は、Azure VM でデバッグを試してください。

  1. [発行] ウィンドウを使用して Azure App Service の発行プロファイルを作成します。

  2. プロファイルで、 [ホスティング] の下にある [...] メニューを選択します。 [デバッガーのアタッチ] オプションを選択します。

    Visual Studio は、プロファイルの発行対象である Azure App Service (Windows) のインスタンスにリモート デバッガーを添付しようと試みます。

    </bpt>[発行の概要] ページ内の [デバッガーを添付する] オプションのスクリーンショット。<ept id=&quot;p1&quot;>

注意

Visual Studio 2022 では、Cloud Explorer は非推奨とされます。 Cloud Explorer は以前、Azure App Service のリモート デバッグの方法を提供していました。

Cloud Explorer を使用してアプリを配置してリモート デバッグするには

  1. Visual Studio で、プロジェクト ノードを右クリックし、 [発行] を選択します。

    以前に発行プロファイルを構成してある場合、 [発行] ウィンドウが表示されます。 [新規] または [新しいプロファイル] を選択します。

  2. 新しい発行プロファイルを作成する

    [発行] ダイアログボックスから [Azure] を選択し、 [次へ] を選択します。 次に、 [Azure App Service (Windows)] を選択し、 [次へ] を選択し、画面の指示に従ってプロファイルを作成します。

    Visual Studio を使用して Azure に ASP.NET Core Web アプリを配置する

    Visual Studio 2017 で、 [発行] ダイアログ ボックスから [Azure App Service] を選択し、 [新規作成] を選択して、画面の指示に従ってプロファイルを作成します。

    詳細な手順については、「Visual Studio を使用して Azure に ASP.NET Core アプリを発行する」を参照してください

  3. [発行] ウィンドウで、 [構成の編集] を選択し、[デバッグ構成] に切り替えて、 [発行] を選択します。

    [デバッグ構成] はアプリをデバッグするために必要です。

  4. Cloud Explorer ( [表示] > [Cloud Explorer] ) を開き、App Service インスタンスを右クリックして、 [デバッガーのアタッチ] を選択します。

    Cloud Explorer を使用できない場合は、代わりにサーバー エクスプローラーを開きます。 次に、サーバー エクスプローラーで App Service インスタンスを右クリックし、 [デバッガーのアタッチ] を選択します。

  5. 実行中の ASP.NET アプリケーションで、 [バージョン情報] ページのリンクをクリックします。

    Visual Studio で、ブレークポイントにヒットするはずです。

    これで完了です。 このトピックの残りの手順は、Azure VM 上のリモート デバッグに適用されます。

Azure VM 上で ASP.NET Core をリモート デバッグする

Windows Server 用の Azure VM を作成し、IIS とその他の必要なソフトウェア コンポーネントをインストールして構成することができます。 これには Azure App Service への配置よりも時間がかかります。また、このチュートリアルの残りの手順に従う必要があります。

これらの手順は、次のサーバー構成でテストされています。

  • Windows Server 2012 R2 および IIS 8
  • Windows Server 2016 および IIS 10
  • Windows Server 2019 および IIS 10

アプリは Azure VM 上の IIS で既に実行されていますか?

この記事には、Windows サーバー上で IIS の基本構成を設定し、Visual Studio からアプリを配置する手順が含まれています。 これらの手順は、サーバーに必要なコンポーネントがインストールされていること、アプリを正しく実行できること、およびリモート デバッグの準備ができていることを確認するために含まれています。

  • アプリが IIS で実行されていて、リモート デバッガーをダウンロードしてデバッグを開始するだけの場合は、「Windows Server 上でリモート ツールをダウンロードしてインストールする」を参照してください。

  • アプリが IIS で正しく設定、配置、および実行されていることを確認してデバッグできるようにするためにヘルプが必要な場合は、このトピックのすべての手順に従ってください。

    • 開始する前に、IIS Web サーバーをインストールする手順を含め、Windows 仮想マシンの作成に関するページに説明されているすべての手順を実行します。

    • Azure ネットワーク セキュリティ グループでポート 80 を開いていることを確認します。 ポート 80 が開いていることを確認したら、リモート デバッガー用の正しいポート (4026、4024、または 4022) も開きます。 こうすることで後で開く必要がなくなります。 Web 配置を使用している場合は、ポート 8172 も開きます。

Windows Server 上でブラウザーのセキュリティ設定を更新する

Internet Explorer で [セキュリティ強化の構成] が有効な場合は (既定値は有効です)、一部のドメインを信頼済みサイトとして追加し、一部の Web サーバー コンポーネントをダウンロードできるようにする必要があります。 信頼済みサイトを追加するには、 [インターネット オプション] > [セキュリティ] > [信頼済みサイト] > [サイト] に移動します。 次のドメインを追加します。

  • microsoft.com
  • go.microsoft.com
  • download.microsoft.com
  • iis.net

ソフトウェアをダウンロードすると、さまざまな Web サイトのスクリプトとリソースを読み込むためのアクセス許可を付与する要求を受け取る場合があります。 これらのリソースの一部は不要ですが、プロセスを簡略化するために、プロンプトが表示されたら [追加] をクリックします。

Windows Server に ASP.NET Core をインストールする

  1. ホスト システムに .NET Core ホスティング バンドルをインストールします。 このバンドルをインストールすることで、.NET Core ランタイム、.NET Core ライブラリ、ASP.NET Core モジュールがインストールされます。 詳細な手順については、IIS への発行に関するページを参照してください。

    現在の .NET Core ホスティング バンドルについては、ASP.NET Core ホスティング バンドルをインストールしてください。 .NET Core 2 の場合は、.NET Core Windows Server ホスティングをインストールします。

    注意

    システムにインターネット接続が設定されていない場合は、.NET Core Windows Server ホスティング バンドルをインストールする前に、 Microsoft Visual C++ 2015 再頒布可能パッケージ を入手してインストールしてください。

  2. システムを再起動します (または、コマンド プロンプトから net stop was /y の後に続けて net start w3svc を実行して、システム PATH への変更を適用します)。

配置オプションを選択する

IIS へのアプリの配置についてヘルプが必要な場合は、次のオプションを検討してください。

  • IIS で発行設定ファイルを作成し、Visual Studio に設定をインポートして配置します。 シナリオによっては、この方法でアプリを迅速に配置できます。 発行設定ファイルを作成すると、IIS でアクセス許可が自動的に設定されます。

  • ローカル フォルダーに発行し、適切な方法で出力を IIS 上の準備されたアプリ フォルダーにコピーすることで配置します。

(省略可能) 発行設定ファイルを使用してデプロイする

このオプションを使用すると、発行設定ファイルを作成し、それを Visual Studio にインポートすることができます。

注意

この配置方法では Web 配置を使用するため、サーバーに Web 配置がインストールされている必要があります。 設定をインポートするのではなく、Web 配置を手動で構成する場合は、ホスティング サーバー用 Web 配置 3.6 ではなく、Web 配置 3.6 をインストールすることができます。 ただし、Web 配置を手動で構成する場合は、サーバー上のアプリ フォルダーが正しい値とアクセス許可で構成されていることを確認する必要があります (ASP.NET Web サイトの構成に関するセクションを参照してください)。

ASP.NET Core Web サイトを構成する

  1. IIS マネージャーの左側のウィンドウで、 [接続][アプリケーション プール] を選択します。 DefaultAppPool を開き、 [.NET CLR バージョン][マネージド コードなし] に設定します。 これは ASP.NET Core に必要です。 既定の Web サイトで DefaultAppPool が使用されます。

  2. DefaultAppPool を停止して再起動します。

Windows Server にホスティング サーバー用 Web 配置をインストールして構成する

ホスティング サーバーの Web 配置 3.6 では、UI から発行設定ファイルの作成を有効にする追加の構成機能を提供しています。

IIS 用の Web Platform Installer では、バージョン 4.0 ではなく、この記事で推奨している 3.6 をインストールできます。

  1. Windows Server に Web 配置を既にインストールしている場合は、 [コントロール パネル] > [プログラム] > [プログラムのアンインストール] を使用してアンインストールします。

  2. 次に、Windows Server にホスティング サーバーの Web 配置 3.6 をインストールします。

    ホスティング サーバーの Web 配置をインストールするには、Web Platform Installer (WebPI) を使用します。 (IIS で Web Platform Installer のリンクを見つけるには、サーバー マネージャーの左側のウィンドウで [IIS] を選択します。 サーバー ウィンドウで、サーバーを右クリックして [インターネット インフォメーション サービス (IIS) マネージャー] を選択します。 次に、 [アクション] ウィンドウの [Get New Web Platform Components] (新しい Web Platform コンポーネントの取得) リンクをクリックします)。Web Platform Installer (WebPI) は ダウンロードから入手することもできます。

    Web Platform Installer の [アプリケーション] タブで、 [Web Deploy 3.6 for Hosting Servers](ホスティング サーバーの Web 配置 3.6) を見つけます。

  3. [IIS 管理スクリプトおよびツール] をまだインストールしていない場合は、今すぐインストールします。

    [サーバーの役割の選択] > [Web Server (IIS)] > [管理ツール] の順に移動して、 [IIS 管理スクリプトおよびツール] の役割を選択し、 [次へ] をクリックしてその役割をインストールします。

    IIS 管理スクリプトおよびツールのインストール

    発行設定ファイルの作成を有効にするには、このスクリプトとツールが必要です。

  4. (省略可能) [コントロール パネル] > [システムとセキュリティ] > [管理ツール] > [サービス] を開くことで、Web 配置が正常に実行されていることを確認した後、以下を確認します。

    • Web Deployment Agent Service が実行されている (古いバージョンではサービス名が異なります)。

    • Web 管理サービス が実行されている。

    いずれかのエージェント サービスが実行されていない場合は、Web Deployment Agent サービス を再起動します。

    Web Deployment Agent サービスがまったく表示されない場合は、 [コントロール パネル] > [プログラム] > [プログラムのアンインストール] の順に移動し、 [Microsoft Web Deploy <version>] を見つけます。 インストールの [変更] を選び、Web 配置コンポーネントに [Will be installed to the local hard drive](ローカル ハード ドライブにインストール) を選択していることを確認します。 インストールの変更手順を完了します。

Windows Server 上の IIS に発行設定ファイルを作成する

  1. IIS 管理コンソールを閉じて、もう一度開き、UI の更新された構成オプションを表示します。

  2. IIS で [既定の Web サイト] を右クリックして、 [展開] > [Web 配置による発行の有効化] の順に選びます。

    Web 配置の構成

    [配置] メニューが表示されない場合は、前のセクションを参照して Web 配置が実行されていることを確認します。

  3. [Web 配置による発行の有効化] ダイアログ ボックスで、この設定を確認します。

  4. [設定] をクリックします。

    [結果] パネルで、出力に特定のユーザーに付与されているアクセス権が示され、 .publishsettings のファイル拡張子が付いたファイルがダイアログ ボックスで示されている場所に作成されています。

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        mySQLDBConnectionString=""
        SQLServerDBConnectionString=""
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    ご利用の Windows Server と IIS の構成によって、XML ファイルには異なる値が表示されます。 表示される値に関する詳細のいくつかを次に示します。

    • publishUrl 属性で参照されている msdeploy.axd ファイルは、Web 配置用に動的に作成された HTTP ハンドラー ファイルです。 (テスト目的で、通常、http://myhostname:8172 も動作します。)

    • publishUrl ポートは、Web 配置の既定値であるポート 8172 に設定されます。

    • destinationAppUrl ポートは、IIS の既定値であるポート 80 に設定されます。

    • 後の手順で Visual Studio でホスト名を使用してリモート ホストに接続できない場合は、ホスト名の代わりにサーバーの IP アドレスでテストします。

      注意

      Azure VM で実行されている IIS に発行する場合は、ネットワーク セキュリティ グループに Web 配置ポートと IIS 用のポートを開く必要があります。 詳細については、仮想マシンへのポートを開く方法に関するページを参照してください。

  5. Visual Studio を実行しているコンピューターにこのファイルをコピーします。

Visual Studio で発行設定をインポートして配置する

  1. Visual Studio で ASP.NET プロジェクトを開いているコンピューターで、ソリューション エクスプローラーのプロジェクトを右クリックし、 [発行] を選択します。

    以前に発行プロファイルを構成してある場合、 [発行] ウィンドウが表示されます。 [新規] または [新しいプロファイルの作成] をクリックします。

  2. プロファイルをインポートするオプションを選択します。

    [発行] ダイアログ ボックスで [プロファイルのインポート] をクリックします。

    [発行先を選択] ダイアログ ボックスで [プロファイルのインポート] を選択します。

    [発行] を選択する

  3. 前のセクションで作成した発行設定ファイルの場所に移動します。

  4. [発行設定ファイルのインポート] ダイアログで、前のセクションで作成したプロファイルに移動して選択し、 [開く] をクリックします。

    [完了] をクリックして発行プロファイルを保存し、 [発行] をクリックします。

    Visual Studio で配置プロセスを開始します。[出力] ウィンドウに進行状況と結果が表示されます。

    配置エラーが発生した場合は、 [編集] をクリックして設定を編集します。 設定を変更し、 [検証] をクリックして新しい設定をテストします。 ホスト名が見つからない場合は、 [サーバー] フィールドと [参照先 URL] フィールドにホスト名ではなく IP アドレスを入力してみてください。

    Visual Studio で配置プロセスを開始します。[出力] ウィンドウに進行状況と結果が表示されます。

    配置エラーが発生した場合は、 [設定] をクリックして設定を編集します。 設定を変更し、 [検証] をクリックして新しい設定をテストします。 ホスト名が見つからない場合は、 [サーバー] フィールドと [参照先 URL] フィールドにホスト名ではなく IP アドレスを入力してみてください。

    発行ツールで設定を編集する

注意

Azure VM を再起動すると、IP アドレスが変更される可能性があります。

アプリが正常に配置されたら、自動的に起動されます。 Visual Studio からアプリが起動しない場合は、IIS でアプリを起動し、正常に動作することを確認します。 ASP.NET Core の場合は、DefaultAppPool の [アプリケーション プール] フィールドが [マネージド コードなし] に設定されていることも確認する必要があります。

  1. [設定] ダイアログ ボックスで、 [次へ] をクリックしてデバッグを有効にし、 [デバッグ] 構成を選択し、 [ファイル発行オプション][発行先の追加ファイルを削除する] を選択します。

    重要

    リリース構成を選択した場合、発行時に web.config ファイルのデバッグを無効にします。

  2. [保存] をクリックしてアプリを再発行します。

(省略可能) ローカル フォルダーに発行して配置する

PowerShell、RoboCopy を使用してアプリを IIS にコピーする場合、またはファイルを手動でコピーする場合は、このオプションを使用してアプリを配置できます。

Windows Server コンピューター上で ASP.NET Core Web サイトを構成する

発行設定をインポートする場合は、このセクションをスキップできます。

  1. インターネット インフォメーション サービス (IIS) マネージャー を開き、 [サイト] に移動します。

  2. [既定の Web サイト] ノードを右クリックして、 [アプリケーションの追加] を選択します。

  3. [エイリアス] フィールドを「MyASPApp」に、[アプリケーション プール] フィールドを [マネージ コードなし] に設定します。 [物理パス]C:\Publish に設定します (後でここに ASP.NET Core プロジェクトを配置します)。

  4. IIS マネージャーでサイトを選択した状態で、 [アクセス許可の編集] を選択し、IUSR、IIS_IUSRS、またはアプリケーション プール用に構成されたユーザーが、読み取りと実行の権限を持つ承認済みユーザーであることを確認します。

    これらのアクセス権を持つユーザーが 1 人も表示されない場合は、読み取りおよび実行アクセス権を持つユーザーとして IUSR を追加する手順を実行します。

(省略可能) Visual Studio からローカル フォルダーに発行してアプリを発行および配置する

Web 配置を使用していない場合は、ファイル システムまたはその他のツールを使用して、アプリを発行して配置する必要があります。 まず、ファイル システムを使用してパッケージを作成し、パッケージを手動で展開するか、PowerShell、RoboCopy、XCopy などの他のツールを使用します。 このセクションでは、Web 配置を使用していない場合は、パッケージを手動でコピーすることを前提としています。

  1. ソリューション エクスプローラー で、プロジェクト ノードを右クリックし、 [発行] (Web フォームの場合は [Web アプリの発行] ) を選択します。

    以前に発行プロファイルを構成してある場合、 [発行] ウィンドウが表示されます。 [新しいプロファイル] をクリックします。

  2. [発行] ダイアログ ボックスで [フォルダー] を選択し、 [参照] をクリックして、新しいフォルダー C:\Publish を作成します。

    Visual Studio の [発行先を選択] ダイアログのスクリーンショット。発行先としてフォルダー `C:\Publish' が選択されています。

    [完了] をクリックし、発行プロファイルを保存します。

    Visual Studio の [発行先を選択] ダイアログのスクリーンショット。発行先としてフォルダー `bin\Release\Publish' が選択されています。 Web フォーム アプリの場合は [発行] ダイアログ ボックスで [カスタム] を選択し、プロファイル名を入力して [OK] を選択します。

    ドロップダウン リストの [プロファイルの作成] をクリックします ( [発行] が既定値です)。

  3. デバッグ構成に切り替えます。

    [編集] を選択してプロファイルを編集し、 [設定] を選択します。 [デバッグ] 構成を選択し、 [ファイル発行] オプションの [発行先の追加ファイルを削除する] を選択します。

    [設定] ダイアログ ボックスで、 [次へ] をクリックしてデバッグを有効にし、 [デバッグ] 構成を選択し、 [ファイル発行オプション][発行先の追加ファイルを削除する] を選択します。

    注意

    リリース ビルドを使用する場合は、発行時に web.config ファイルでデバッグを無効にします。

  4. [発行] をクリックします。

    [発行] ダイアログボックスの [設定] タブのスクリーンショット。 構成が [デバッグ] に設定され、[発行] ボタンが選択されています。

    アプリケーションによって、プロジェクトの [デバッグ] 構成がローカル フォルダーに発行されます。 出力ウィンドウに進行状況が表示されます。

  5. Visual Studio コンピューターの ASP.NET プロジェクト ディレクトリを、Windows Server コンピューター上の ASP.NET アプリ用に構成されたローカル ディレクトリ (この例では C:\Publish) にコピーします。 このチュートリアルでは、手動でコピーすることを想定していますが、PowerShell、Xcopy、Robocopy などの他のツールを使用することもできます。

    注意事項

    コードの変更やリビルドが必要な場合は、再発行してこの手順を繰り返す必要があります。 リモート コンピューターにコピーした実行可能ファイルは、ローカルのソースとシンボルに正確に一致している必要があります。 これを行わないと、プロセスをデバッグしようとしたときに Visual Studio で cannot find or open the PDB file の警告が表示されます。

  6. Windows Server 上のブラウザーでアプリを開いて、アプリを正しく実行できることを確認します。

    アプリが正常に動作しない場合は、サーバーにインストールされている ASP.NET のバージョンと Visual Studio マシンのバージョンが一致していないか、IIS または Web サイトの構成に問題がある可能性があります。 前述の手順を再確認してください。

Windows Server 上でリモート ツールをダウンロードしてインストールする

Visual Studio のバージョンと一致するバージョンのリモート ツールをダウンロードします。

Visual Studio マシンではなく、デバッグするリモート デバイスまたはサーバーで、次の表のリンクから適切なバージョンのリモート ツールをダウンロードしてインストールします。

  • お使いのバージョンの Visual Studio 用の最新のリモート ツールをダウンロードします。 最新バージョンのリモート ツールは、以前のバージョンの Visual Studio と互換性がありますが、以前のバージョンのリモート ツールは、以降のバージョンの Visual Studio と互換性がありません (たとえば、Visual Studio 2017 を使用している場合、Visual Studio 2017 用のリモート ツールの最新の更新プログラムをダウンロードします。 このシナリオでは、Visual Studio 2019 用のリモート ツールをダウンロードしないでください)。
  • インストール先のマシンと同じアーキテクチャを持つリモート ツールをダウンロードします。 たとえば、64 ビットのオペレーティング システムを実行しているリモート コンピューターで 32 ビット アプリをデバッグする場合は、64 ビットのリモート ツールをインストールします。
バージョン Link メモ
Visual Studio 2022 プレビュー用のリモート ツール すべてのバージョンの Visual Studio 2022 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2019 リモート ツール すべてのバージョンの Visual Studio 2019 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2017 リモート ツール すべてのバージョンの Visual Studio 2017 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2015 リモート ツール Visual Studio 2015 用のリモート ツールは My.VisualStudio.com で入手できます。 メッセージが表示されたら、無料の Visual Studio Dev Essentials プログラムに参加するか、または Visual Studio サブスクリプション ID でサインインします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2013 リモート ツール Visual Studio 2013 ドキュメントのダウンロード ページ
Visual Studio 2012 リモート ツール Visual Studio 2012 ドキュメントのダウンロード ページ
バージョン Link メモ
Visual Studio 2019 リモート ツール すべてのバージョンの Visual Studio 2019 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2017 リモート ツール すべてのバージョンの Visual Studio 2017 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2015 リモート ツール Visual Studio 2015 用のリモート ツールは My.VisualStudio.com で入手できます。 メッセージが表示されたら、無料の Visual Studio Dev Essentials プログラムに参加するか、または Visual Studio サブスクリプション ID でサインインします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2013 リモート ツール Visual Studio 2013 ドキュメントのダウンロード ページ
Visual Studio 2012 リモート ツール Visual Studio 2012 ドキュメントのダウンロード ページ
バージョン Link メモ
Visual Studio 2017 リモート ツール すべてのバージョンの Visual Studio 2017 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。 最新バージョンのリモート ツールについては、Visual Studio 2019 ドキュメントを開きます。
Visual Studio 2015 リモート ツール Visual Studio 2015 用のリモート ツールは My.VisualStudio.com で入手できます。 メッセージが表示されたら、無料の Visual Studio Dev Essentials プログラムに参加するか、または Visual Studio サブスクリプション ID でサインインします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2013 リモート ツール Visual Studio 2013 ドキュメントのダウンロード ページ
Visual Studio 2012 リモート ツール Visual Studio 2012 ドキュメントのダウンロード ページ

リモート デバッガーを実行するには、リモート ツールをインストールするのではなく、msvsmon.exe をリモート コンピューターにコピーします。 ただし、リモート デバッガー構成ウィザード (rdbgwiz.exe) は、リモート ツールをインストールした場合にのみ使用できます。 リモート デバッガーをサービスとして実行する場合は、構成にウィザードの使用が必要になることがあります。 詳細については、「(オプション) リモート デバッガーをサービスとして構成する」を参照してください。

注意

  • ARM デバイスで Windows 10 アプリをデバッグするには、最新バージョンのリモート ツールで使用できる ARM64 を使用します。
  • Windows RT デバイスで Windows 10 アプリをデバッグするには、ARM を使用します。これは、Visual Studio 2015 リモート ツールのダウンロードでのみ使用できます。

Windows Server 上でリモート デバッガーを設定する

  1. リモート コンピューター上の [スタート] メニューで、 [リモート デバッガー] を見つけて起動します。

    リモート コンピューターに対する管理アクセス許可がない場合は、 [リモート デバッガー] アプリを右クリックし、 [管理者として実行] を選択します。 それ以外の場合は、通常どおり開始します。

    管理者として実行されているプロセス、または別のユーザー アカウント (IIS など) で実行されているプロセスにアタッチする場合は、 [リモート デバッガー] アプリを右クリックし、 [管理者として実行] を選択します。 詳細については、「管理者としてリモート デバッガーを実行する」を参照してください。

  2. リモート デバッガーを初めて (またはその構成を完了する前に) 開始すると、 [リモート デバッグの構成] ダイアログ ボックスが表示されます。

    リモート デバッガーの構成

  3. Windows Web Services API がインストールされていない場合 (これは、Windows Server 2008 R2 でのみ発生します) は、 [インストール] ボタンを選択します。

  4. リモート ツールを使用するネットワークの種類を少なくとも 1 つ選択します。 コンピューターがドメインを介して接続されている場合は、最初の項目を選択する必要があります。 コンピューターがワークグループまたはホーム グループを介して接続されている場合は、必要に応じて、2 番目または 3 番目の項目を選択します。

  5. [リモート デバッグの構成] を選択してファイアウォールを構成し、リモート デバッガーを起動します。

  6. 構成が完了すると、 [リモート デバッガー] ウィンドウが表示されます。

    リモート デバッガー ウィンドウ

    リモート デバッガーは接続を待機しています。 表示されているサーバー名とポート番号を使用して、Visual Studio でリモート接続構成を設定します。

リモート デバッガーを停止するには、 [ファイル] > [終了] を選択します。 リモート デバッガーを再起動するには、 [スタート] メニューを使用するか、またはコマンド ラインから次のコマンドを実行します。

<Remote debugger installation directory>\msvsmon.exe

注意

追加のユーザーのアクセス許可を追加し、認証モード、またはリモート デバッガーのポート番号を変更する必要がある場合は、「リモート デバッガーを構成する」を参照してください。

Visual Studio コンピューターから ASP.NET アプリケーションにアタッチする

  1. Visual Studio コンピューター上で、デバッグ対象のソリューション (この記事の手順を実行している場合は、MyASPApp) を開きます。

  2. Visual Studio で [デバッグ] > [プロセスにアタッチ] (Ctrl + Alt + P キー) をクリックします。

    ヒント

    Visual Studio 2017 以降のバージョンで以前にアタッチしたものと同じプロセスに再アタッチするには、 [デバッグ] > [プロセスに再アタッチする] (Shift + Alt + P キー) を使用します。

  3. [修飾子] フィールドを <remote computer name> に設定し、Enter キーを押します。

    Visual Studio で必要なポートがコンピューター名に追加されていることを確認します ( <remote computer name>:port という形式で表示されます)

    Visual Studio 2022 では、 <remote computer name>:4026 が表示されます

    Visual Studio 2019 では、 <remote computer name>:4024 が表示されます

    Visual Studio 2017 では、 <remote computer name>:4022 が表示されます

    ポートは必須です。 ポート番号が表示されない場合は、手動で追加します。

  4. [最新の情報に更新] をクリックします。 [選択可能なプロセス] ウィンドウにプロセスがいくつか表示されます。

    プロセスが表示されない場合は、リモート コンピューター名ではなく IP アドレスを使用してみてください (ポートは必須です)。 コマンド ラインで ipconfig を使用すると、IPv4 アドレスを取得できます。

    [検索] ボタンを使用する場合は、サーバー上で必要に応じて UDP ポート 3702 を開きます。

  5. [すべてのユーザーからのプロセスを表示する] をオンにします。

  6. プロセス名の最初の文字を入力すると、アプリをすばやく見つけることができます。

    • IIS で インプロセス ホスティング モデルを使用している場合は、正しい w3wp.exe プロセスを選択します。 .NET Core 3 以降では、これが既定値です。

    • それ以外の場合は、dotnet.exe プロセスを選択します (これはアウト プロセス ホスティング モデルです)。

    w3wp.exe または dotnet.exe を示す複数のプロセスがある場合は、 [ユーザー名] 列を確認します。 一部のシナリオでは、 [ユーザー名] 列に IIS APPPOOL\DefaultAppPool などのアプリ プール名が表示されます。 アプリ プールが表示され、一意ではない場合は、デバッグするアプリ インスタンスの新しい名前付きアプリ プールを作成すると、 [ユーザー名] 列で簡単に見つけることができます。

    RemoteDBG_AttachToProcess

    RemoteDBG_AttachToProcess

  7. [アタッチ] をクリックします。

  8. リモート コンピューターの Web サイトを開きます。 ブラウザーで、http://<remote computer name> に移動します。

    ASP.NET の Web ページが表示されるはずです。

  9. 実行中の ASP.NET アプリケーションで、 [バージョン情報] ページのリンクをクリックします。

    Visual Studio で、ブレークポイントにヒットするはずです。

IIS 展開のトラブルシューティング

  • ホスト名を使用してホストに接続できない場合は、代わりに IP アドレスを試してみてください。
  • リモート サーバーで必要なポートが開かれていることを確認します。
  • ASP.NET Core の場合、DefaultAppPool の [アプリケーション プール] フィールドが [マネージド コードなし] に設定されていることを確認する必要があります。
  • ご自分のアプリで使用している ASP.NET のバージョンが、サーバーにインストールしたバージョンと同じであることを確認します。 ご自分のアプリでは、 [プロパティ] ページでバージョンを表示および設定できます。 アプリに別のバージョンを設定するには、そのバージョンがインストールされている必要があります。
  • アプリを開こうとしたとき、証明書の警告が表示される場合は、サイトを信頼することを選択します。 警告を既に閉じてしまった場合は、プロジェクトの発行プロファイル (*.pubxml ファイル) を編集し、<AllowUntrustedCertificate>true</AllowUntrustedCertificate> 要素を追加します (テスト用のみ)。
  • Visual Studio からアプリが起動しない場合は、IIS でアプリを起動し、正常に展開されていることを確認します。
  • Visual Studio の [出力] ウィンドウで状態情報を確認し、エラー メッセージを確認します。

Windows Server で必要なポートを開く

ほとんどの設定では、ASP.NET とリモート デバッガーのインストールによって必要なポートが開かれます。 ただし、配置の問題をトラブルシューティングしていて、アプリがファイアウォールの背後でホストされている場合は、必要に応じて正しいポートが開いていることを確認します。

Azure VM では、ネットワーク セキュリティ グループを使用してポートを開く必要があります。

必要なポート:

  • 80 - IIS に必要です
  • UDP 3702 - (省略可能) 検出ポートを使用すると、Visual Studio でリモート デバッガーにアタッチするときに [検索] ボタンを使用できます。

また、ASP.NET をインストールしている場合、これらのポートは既に開かれているはずです。

  • 8172 - (省略可能) Web 配置で Visual Studio からアプリを配置する場合に必要です