次の方法で共有


Visual Studio で Azure Cloud Services (延長サポート) サービスをデバッグする

Visual Studio には、Azure Cloud Services (延長サポート) と仮想マシンをデバッグするためのさまざまなオプションが用意されています。

[前提条件]

ローカル コンピューターでクラウド サービスをデバッグする

Azure Compute Emulator を使用してローカル コンピューターでクラウド サービスをデバッグすることで、時間とコストを節約できます。 デプロイする前にサービスをローカルでデバッグすることで、コンピューティング時間を支払うことなく信頼性とパフォーマンスを向上させることができます。 ただし、一部のエラーは、Azure 自体でクラウド サービスを実行する場合にのみ発生する可能性があります。 サービスの発行時にリモート デバッグを有効にし、デバッガーをロール インスタンスにアタッチすると、これらのエラーをデバッグできます。

エミュレーターは Azure コンピューティング サービスをシミュレートし、ローカル環境で実行されるため、クラウド サービスをデプロイする前にテストおよびデバッグできます。 エミュレーターはロール インスタンスのライフサイクルを処理し、ローカル ストレージなどのシミュレートされたリソースへのアクセスを提供します。 Visual Studio からサービスをデバッグまたは実行すると、エミュレーターがバックグラウンド アプリケーションとして自動的に起動され、エミュレーターにサービスがデプロイされます。 エミュレーターを使用して、ローカル環境で実行するときにサービスを表示できます。 エミュレーターのフル バージョンまたは高速バージョンを実行できます。 「Emulator Express を使用してクラウド サービスをローカルで実行およびデバッグする」を参照してください。

ローカル コンピューターでクラウド サービスをデバッグするには

  1. メニュー バーで、[デバッグ]>[デバッグの開始] を選択して、Azure Cloud Services (延長サポート) プロジェクトを実行します。 別の方法として、F5 キーを押します。 コンピューティング エミュレーターが起動していることを示すメッセージが表示されます。 エミュレーターが起動すると、システム トレイ アイコンによって確認されます。

    システム トレイ内の Azure エミュレーター

  2. 通知領域で Azure アイコンのショートカット メニューを開き、[コンピューティング エミュレーター UI の表示] を選択して、コンピューティング エミュレーターのユーザー インターフェイスを表示します。

    UI の左側のウィンドウには、コンピューティング エミュレーターに現在デプロイされているサービスと、各サービスが実行されているロール インスタンスが表示されます。 サービスまたはロールを選択して、右側のウィンドウにライフサイクル、ログ、診断情報を表示できます。 含まれているウィンドウの上部余白にフォーカスを置くと、ウィンドウが右ペイン全体に拡大します。

  3. [デバッグ] メニューでコマンドを選択し、コードにブレークポイントを設定して、アプリケーションをステップ実行します。 デバッガーでアプリケーションをステップ実行すると、ペインがアプリケーションの現在の状態で更新されます。 デバッグを停止すると、アプリケーションのデプロイが削除されます。 アプリケーションに Web ロールが含まれており、Web ブラウザーを起動するように Startup アクション プロパティを設定している場合、Visual Studio はブラウザーで Web アプリケーションを起動します。 サービス構成でロールのインスタンス数を変更する場合は、ロールのこれらの新しいインスタンスをデバッグできるように、クラウド サービスを停止してからデバッグを再開する必要があります。

    サービスの実行またはデバッグを停止しても、ローカル コンピューティング エミュレーターとストレージ エミュレーターは停止しません。 通知領域から明示的に停止する必要があります。

Azure でクラウド サービスをデバッグする

このセクションの手順を使用してクラウド サービスのリモート デバッグを有効にしても、パフォーマンスの低下や追加料金は発生しません。 運用サービスでリモート デバッグを使用しないでください。これは、サービスを使用するクライアントが悪影響を受ける可能性があるためです。

クラウド サービスのリモート デバッグを有効にするには (延長サポート)

  1. 既定の msvsmon ポートの ServiceDefinition.csdef にエンドポイントを追加します。 Visual Studio 2019 の場合は 4024 です。

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4024" localPort="4024" />
    </Endpoints>
    

    他のバージョンの Visual Studio には、異なるポート のリモート デバッガー ポートの割り当てがあります

  2. Azure プロジェクトのショートカット メニューを開き、[発行] を選択 します

  3. ステージング環境とデバッグ構成を選択します。

    これはガイドラインにすぎません。 運用環境でテスト環境を実行することを選択できます。 ただし、運用環境でリモート デバッグを有効にすると、ユーザーに悪影響を及ぼす可能性があります。 リリース構成は選択できますが、デバッグ構成を使用するとデバッグが容易になります。

    デバッグ構成を選択します。

  4. Cloud Services (延長サポート) で説明されている通常の手順に従いますが、[すべてのロールに対してリモート デスクトップを有効にする] チェック ボックスをオンにします。

    リモート デスクトップ ユーザーのユーザー名とパスワードを作成するように求められます。このユーザー名とパスワードは、後でその仮想マシンにサインインするために必要になります。

  5. 次の画面に進み、設定を確認し、準備ができたら [ 発行 ] をクリックし、デプロイが完了するまで待ちます。

  6. Azure portal にサインインし、デバッグするクラウド サービス (延長サポート) に移動します。

  7. 左側のウィンドウで [ ロールとインスタンス] を選択し、リモートでのデバッグに関心のあるロールを選択します。

  8. 右側の [ロール インスタンス] ポップアップで [接続] をクリックし、[接続] ボタンを選択して、仮想マシンにサインインできるリモート デスクトップ ファイルをダウンロードします。 前の手順でリモート デスクトップを有効にしたときに作成した資格情報を使用してサインインします。

    [接続] オプションを含むロール インスタンスのポップアップを示すスクリーンショット。

  9. リモート Azure 仮想マシンで、リモート デバッグの説明に従って Visual Studio 2019 リモート ツール インストールします。

  10. 仮想マシン上のデスクトップから 、D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exeコマンド を実行します。 必ず管理者として実行してください。

  11. ファイアウォール経由のアクセスを許可するプロンプトを受け入れます。 msvsmon.exe が接続を待機していることを示すメッセージが表示されます。

  12. Azure portal でリソース グループを開き、クラウド サービス (延長サポート) のパブリック IP アドレスを取得します。

    クラウド サービスのパブリック IP アドレスを検索する場所を示すスクリーンショット。

Azure のクラウド サービス (延長サポート) にデバッガーをアタッチするには

可能な限り、発行プロセスで選択したデバッグ構成を使用してデバッグする必要がありますが、リリース構成をデバッグする場合は、Visual Studio で Ctrl+Q を使用して "マイ コードのみ" を検索し、[ツール] で [マイ コードのみ有効にする] をオフにします>Options>Debugger>General。 リリース ビルドは最適化されているため、"マイ コード" とは見なされません。

  1. [デバッグ]>[プロセスにアタッチ]を選択します (または Ctrl+Alt+P キーを押します)。

  2. 接続の種類は 既定のままにします

  3. IP アドレスとポートを使用して、接続ターゲットを入力します: {ipaddress}:4024

  4. [アタッチ先][自動] に設定します。

  5. リモート デスクトップ ユーザーと同じ資格情報を使用してサインインします。

  6. [すべてのユーザーのプロセスの表示] を選択します。 worker ロールをデバッグしている場合は、 WaWorkerHost.exeにアタッチします。Web ロールをデバッグする場合は、 w3wp.exe プロセスにアタッチします。Web API ロールの場合は 、WaIISHost.exeです。

  7. ブレークポイントを設定し (行に移動し、 F9 キーを押して)、サイトのパブリック URL にアクセスし、デバッグするシナリオを再現します。

クラウド サービスのリモート デバッグを有効にするには (延長サポート)

  1. 既定の msvsmon ポートの ServiceDefinition.csdef にエンドポイントを追加します。 Visual Studio 2022 の場合、これは 4026 です。Visual Studio 2019 の場合は 4024 です。

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4026" localPort="4026" />
    </Endpoints>
    

    他のバージョンの Visual Studio には、異なるポート のリモート デバッガー ポートの割り当てがあります

  2. .NET 4.8 を対象としている場合は、ServiceConfiguration.Cloud.cscfg ファイルを開き、Cloud Services (延長サポート) を発行するときに、ServiceConfiguration要素のosFamily属性の値を確認してください。 .NET 4.8 プロジェクトの場合は、 osFamily="7"を使用します。

  3. Azure プロジェクトのショートカット メニューを開き、[発行] を選択 します

  4. ステージング環境とデバッグ構成を選択します。

    これはガイドラインにすぎません。 運用環境でテスト環境を実行することを選択できます。 ただし、運用環境でリモート デバッグを有効にすると、ユーザーに悪影響を及ぼす可能性があります。 リリース構成は選択できますが、デバッグ構成を使用するとデバッグが容易になります。

    デバッグ構成を選択する

  5. Cloud Services (延長サポート) で説明されている通常の手順に従いますが、[すべてのロールに対してリモート デスクトップを有効にする] チェック ボックスをオンにします。

    リモート デスクトップ ユーザーのユーザー名とパスワードを作成するように求められます。このユーザー名とパスワードは、後でその仮想マシンにサインインするために必要になります。

  6. 次の画面に進み、設定を確認し、準備ができたら [ 発行 ] をクリックし、デプロイが完了するまで待ちます。

  7. Azure portal にサインインし、デバッグするクラウド サービス (延長サポート) に移動します。

  8. 左側のウィンドウで [ ロールとインスタンス] を選択し、リモートでのデバッグに関心のあるロールを選択します。

  9. 右側の [ロール インスタンス] ポップアップで [接続] をクリックし、[接続] ボタンを選択して、仮想マシンにサインインできるリモート デスクトップ ファイルをダウンロードします。 前の手順でリモート デスクトップを有効にしたときに作成した資格情報を使用してサインインします。

    [接続] オプションを含むロール インスタンスのポップアップを示すスクリーンショット。

  10. リモート Azure 仮想マシンで、リモート デバッグの説明に従って Visual Studio 2022 リモート ツール インストールします。

  11. 仮想マシン上のデスクトップから、Common7\IDE\Remote Debugger\x64の下にある Visual Studio インストール フォルダーでコマンドmsvsmon.exeを実行します。 必ず管理者として実行してください。

  12. ファイアウォール経由のアクセスを許可するプロンプトを受け入れます。 msvsmon.exe が接続待機を開始したことを示すメッセージが表示されます。

    msvsmon.exe で接続がリッスンされていることを示すスクリーンショット。

  13. Azure portal でリソース グループを開き、クラウド サービス (延長サポート) のパブリック IP アドレスを取得します。

    クラウド サービスのパブリック IP アドレスを検索する場所を示すスクリーンショット。

Azure のクラウド サービス (延長サポート) にデバッガーをアタッチするには

可能な限り、発行プロセスで選択したデバッグ構成を使用してデバッグする必要がありますが、リリース構成をデバッグする場合は、Visual Studio で Ctrl+Q を使用して "マイ コードのみ" を検索し、[ツール] で [マイ コードのみ有効にする] をオフにします>Options>Debugger>General。 リリース ビルドは最適化されているため、"マイ コード" とは見なされません。

  1. [デバッグ]>[プロセスにアタッチ]を選択します (または Ctrl+Alt+P キーを押します)。

  2. 接続の種類は 既定のままにします

  3. IP アドレスとポートを使用して、接続ターゲットを入力します: {ipaddress}:4026

  4. [アタッチ先][自動] に設定します。

  5. リモート デスクトップ ユーザーと同じ資格情報を使用してサインインします。

  6. [すべてのユーザーのプロセスの表示] を選択します。 worker ロールをデバッグしている場合は、 WaWorkerHost.exeにアタッチします。Web ロールをデバッグする場合は、 w3wp.exe プロセスにアタッチします。Web API ロールの場合は 、WaIISHost.exeです。

  7. ブレークポイントを設定し (行に移動し、 F9 キーを押して)、サイトのパブリック URL にアクセスし、デバッグするシナリオを再現します。

Azure でのリモート デバッグの制限事項

リモート デバッグには、次の制限があります。

  • リモート デバッグを有効にすると、ロールに 25 個を超えるインスタンスがあるクラウド サービスを発行することはできません。

  • デバッガーでは、ポート 30400 から 30424、31400 から 31424、32400 から 32424 が使用されます。 これらのポートのいずれかを使用しようとすると、サービスを発行できず、次のいずれかのエラー メッセージが Azure のアクティビティ ログに表示されます。

    • .csdef ファイルに対する .cscfg ファイルの検証中にエラーが発生しました。 ロール 'role' のエンドポイント Microsoft.WindowsAzure.PlugIns.RemoteDebugger.Connector の予約済みポート範囲 'range' は、既に定義されているポートまたは範囲と重複しています。
    • 割り当てに失敗しました。 後で再試行するか、VM のサイズまたはロール インスタンスの数を減らすか、別のリージョンにデプロイしてみてください。

Azure App Service のデバッグ

Visual Studio の [プロセスにアタッチ] ダイアログを使用して、Azure App Service で実行されるプログラムをデバッグできます。

これは、Visual Studio 2022 17.1 以降の Azure App Service でのみ使用できます。

Windows Azure App Service をデバッグするには

  1. [ デバッグ] で、[ プロセスにアタッチ] を選択します。

  2. 接続の種類Microsoft Azure App Services に変更し、[検索] を選択します

  3. 開いたダイアログ ボックスで、 サブスクリプション名を選択します。

    選択するアプリ サービスの一覧を示す [Azure App Service の選択] ダイアログのスクリーンショット。

    Azure App Service を含むサブスクリプションへのアクセス権を持つ Microsoft アカウントにサインインする必要があります。

  4. リソース グループまたはリソースの種類でビューをフィルター処理するか、名前で検索します。

  5. 次に、デバッグする App Service を選択し、[ OK] を選択します。

    これにより、App Service でのリモート デバッグが可能になり、アタッチできるプロセスの一覧が表示されます。

    選択した App Service で実行されているプロセスを示す [プロセスにアタッチ] ウィンドウのスクリーンショット。

  6. アタッチするプロセスを選択し、[ アタッチ] を選択してデバッグを開始します。

Azure Virtual Machines のデバッグ

Visual Studio のサーバー エクスプローラーを使用して、Azure Virtual Machines で実行されるプログラムをデバッグできます。 Azure 仮想マシンでリモート デバッグを有効にすると、Azure によってリモート デバッグ拡張機能が仮想マシンにインストールされます。 その後、仮想マシン上のプロセスにアタッチし、通常どおりにデバッグできます。

Azure Resource Manager スタックを使用して作成された仮想マシンは、Visual Studio 2019 の Cloud Explorer を使用してリモートでデバッグできます。 詳細については、「 Cloud Explorer を使用した Azure リソースの管理」を参照してください

Azure 仮想マシンをデバッグするには

  1. サーバー エクスプローラーで、[仮想マシン] ノードを展開し、デバッグする仮想マシンのノードを選択します。

  2. コンテキスト メニューを開き、[ デバッグの有効化] を選択します。 仮想マシンでデバッグを有効にするかどうかを確認するメッセージが表示されたら、[ はい] を選択します。

    Azure は、デバッグを有効にするために、仮想マシンにリモート デバッグ拡張機能をインストールします。

    仮想マシンのデバッグの有効化コマンド

    Azure アクティビティ ログ

  3. リモート デバッグ拡張機能のインストールが完了したら、仮想マシンのコンテキスト メニューを開き、[デバッガーのアタッチ] を選択 します。

    Azure は、仮想マシン上のプロセスの一覧を取得し、[ プロセスにアタッチ ] ダイアログ ボックスに表示します。

    デバッガー接続コマンド

  4. [ プロセスにアタッチ ] ダイアログ ボックスで、[ 選択 ] を選択して、デバッグするコードの種類のみを表示するように結果一覧を制限します。 32 ビットまたは 64 ビットのマネージド コード、ネイティブ コード、またはその両方をデバッグできます。

    [コードの種類の選択] ダイアログ ボックス

  5. 仮想マシンでデバッグするプロセスを選択し、[ アタッチ] を選択します。 たとえば、仮想マシンで Web アプリをデバッグする場合は、w3wp.exe プロセスを選択できます。 詳細については、「Visual Studio と Azure ロール アーキテクチャで 1 つ以上のプロセスをデバッグする」を参照してください。

デバッグ用の Web プロジェクトと仮想マシンを作成する

Azure プロジェクトを発行する前に、デバッグとテストのシナリオをサポートする包含環境でテストし、テストおよび監視プログラムをインストールできる環境でテストすると便利な場合があります。 このようなテストを実行する 1 つの方法は、仮想マシンでアプリをリモートでデバッグすることです。

Visual Studio ASP.NET プロジェクトには、アプリのテストに使用できる便利な仮想マシンを作成するオプションが用意されています。 仮想マシンには、PowerShell、リモート デスクトップ、WebDeploy など、一般的に必要なエンドポイントが含まれています。

デバッグ用の Web プロジェクトと仮想マシンを作成するには

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

  2. [新しい ASP.NET プロジェクト] ダイアログの [Azure] セクションで、ドロップダウン リスト ボックスで [ 仮想マシン ] を選択します。 [ リモート リソースの作成 ] チェック ボックスはオンのままにします。 OK を選択して続行します。

    [ Azure での仮想マシンの作成 ] ダイアログ ボックスが表示されます。

    [Web プロジェクト ASP.NET 作成] ダイアログ ボックス

    まだサインインしていない場合は、Azure アカウントにサインインするように求められます。

  3. 仮想マシンのさまざまな設定を選択し、[ OK] を選択します。 詳細については、「 仮想マシン 」を参照してください。

    DNS 名に入力する名前は、仮想マシンの名前になります。

    [Azure での仮想マシンの作成] ダイアログ ボックス

    Azure によって仮想マシンが作成され、リモート デスクトップや Web デプロイなどのエンドポイントがプロビジョニングおよび構成されます。

  4. 仮想マシンが完全に構成されたら、サーバー エクスプローラーで仮想マシンのノードを選択します。

  5. コンテキスト メニューを開き、[ デバッグの有効化] を選択します。 仮想マシンでデバッグを有効にするかどうかを確認するメッセージが表示されたら、[ はい] を選択します。

    Azure は、デバッグを有効にするために、リモート デバッグ拡張機能を仮想マシンにインストールします。

    仮想マシンのデバッグの有効化コマンド

    Azure アクティビティ ログ

  6. 「Visual Studio での One-Click 発行を使用して Web プロジェクトを配置する方法」に従ってプロジェクトを発行します。 仮想マシンでデバッグするため、Web 発行ウィザードの [設定] ページで、構成として [デバッグ] を選択します。 これにより、デバッグ中にコード シンボルを使用できるようになります。

    発行設定

  7. プロジェクトが既に以前に配置されている場合は、[ ファイルの発行オプション] で[ コピー先で追加のファイルを削除 する]を選択します。

  8. プロジェクトが発行されたら、サーバー エクスプローラーの仮想マシンのコンテキスト メニューで、[デバッガーのアタッチ] を選択します。

    Azure は、仮想マシン上のプロセスの一覧を取得し、[ プロセスにアタッチ ] ダイアログ ボックスに表示します。

    デバッガー接続コマンド

  9. [ プロセスにアタッチ ] ダイアログ ボックスで、[ 選択 ] を選択して、デバッグするコードの種類のみを表示するように結果一覧を制限します。 32 ビットまたは 64 ビットのマネージド コード、ネイティブ コード、またはその両方をデバッグできます。

    [コードの種類の選択] ダイアログ ボックス

  10. 仮想マシンでデバッグするプロセスを選択し、[ アタッチ] を選択します。 たとえば、仮想マシンで Web アプリをデバッグする場合は、w3wp.exe プロセスを選択できます。 詳細については、「 Visual Studio で 1 つ以上のプロセスをデバッグ する」を参照してください。