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

この記事では、Azure App Service 上で実行されている ASP.NET Core アプリに Visual Studio デバッガーをアタッチする方法について説明します。 以下の手順に従うと、アプリをローカルで実行されている場合と同じようにデバッグできます。

前提条件

  • ASP.NET と Web 開発および Azure 開発ワークロードがインストールされた Visual Studio 2022。

  • まず、Visual Studio から Azure App Service (Windows) に ASP.NET Core アプリをデプロイする必要があります。また、アプリが実行されている必要があります。

    App Service のデプロイを含む実践的トレーニングについては、Azure での ASP.NET Core のリモート デバッグに関する記事を参照してください。

リモート デバッグの有効化

Visual Studio でこの問題をデバッグするには、App Service でリモート デバッグ機能を有効にする必要があります。 この設定により、Visual Studio デバッガーで、メインの App Service Web ホスティング プロセスに接続できるようになります。

  1. ご自分の Azure portal にサインインします。

    Azure portal でデプロイしたアプリケーションを見つけます。 アプリを見つけるには、App Services ページを参照し、App Service インスタンスを選択します。 上部の検索バーで、App Service インスタンスを名前で直接検索することもできます。 (この例では、App Service インスタンスの名前は GitHubBrowser123 です。)

    Azure 検索のスクリーンショット。

  2. App Services インスタンスの設定ページで、左側のナビゲーションにある [構成] を選択してから、[全般設定] タブを選びます。

  3. ページの下部で、必ず、[リモート デバッグ] 機能を [オン] に設定し、[リモート Visual Studio バージョン] として Visual Studio 2022 を選択します。

    Azure リモート デバッグ設定のスクリーンショット。

  4. ページの上部にある [保存] を選択して変更内容を保存します。

App Service インスタンスで、Visual Studio を介してリモート デバッグがサポートされるようになりました。

デバッグ設定を構成する

成功を確実にするために、Azure でアプリをデバッグする前に、Visual Studio で次の手順を完了していることを確認してください。

  1. まず、少なくとも 1 回はプロジェクトが正常にビルドされていることを確認します。 ビルドが成功すると、ソース コードと必要なコンパイル済みファイルの準備が整います。 アプリケーションがローカルで実行されている場合は、必ずアプリを停止してください。

    注意

    ローカル コードの状態が、Azure にデプロイされたものと一致するようにしてください。 これにより、ローカルのシンボル ファイルとソース コードが、デプロイされたアプリと一致します。

  2. 上部の Visual Studio メニューから [デバッグ] > [オプション] を選択します。 [マイ コードのみを有効にする] が "オフ" になっていることを確認し (以下を参照)、[OK] を選択します。

    この設定を変更すると、Visual Studio は、ローカルの bin フォルダーから必要なシンボル ファイルを使用して、Azure にデプロイされた最適化されているコードをデバッグできます。 シンボル ファイルは、コンパイル済みで実行されるコードと Visual Studio のソース コードの間のブリッジとしてデバッガーによって使用されます。そのため、ローカル ソース コードがデプロイ アプリと一致することが重要です。

    Visual Studio のデバッグ設定のスクリーンショット。

デバッガーを App Service にアタッチする

  1. Visual Studio の上部にあるメイン メニューから、[デバッグ] -> [プロセスにアタッチ] を選択して、対応するダイアログを開きます。 このウィンドウを使用すると、さまざまなターゲットに接続してアタッチできます。 ここでは、前の手順で作成した App Service インスタンスに接続します。

  2. [接続の種類] ドロップダウンを選択し、[Microsoft Azure App Service] オプションを選びます。

  3. [接続先] フィールドの横にある [検索] を選択して、Azure サブスクリプションとアプリ サービスを参照できるダイアログを開きます。

  4. 前の手順で作成した App Service インスタンスを見つけて選択し、[OK] を選択します。

  5. 接続できるプロセスの一覧に w3wp.exe プロセスが表示されます。これは、デプロイされたアプリケーションをホストする Azure App Service のメイン プロセスです。 そのプロセスを選択し、右下にある [アタッチ] を選択して、Visual Studio デバッガーを接続します。

    プロセス機能へのアタッチのスクリーンショット。

  6. Index.cshtml.cs や別の C# アプリケーション ファイルで、左の余白をクリックしてブレークポイントを設定します。 (または、右クリックして [ブレークポイント]>[ブレークポイントの挿入] を選択します。)

  7. 必要に応じて、デバッグ セッションのシンボル ファイルが Visual Studio によって読み込まれたことを確認することもできます。 [デバッグ] > [Windows] > [モジュール] の順に移動し、モジュール ウィンドウを開きます。 このウィンドウは、前に行った [マイコードのみ] の構成の変更後に、シンボル ファイルが正常に読み込まれたことを示しているはずです。

    [シンボル ファイル] ウィンドウのスクリーンショット。