リモート デバッグのトラブルシューティング

適用対象: Visual Studio

この記事では、 リモート デバッグに関する一般的な問題のトラブルシューティング手順と解決策について説明します。

リモート デバッグの問題をトラブルシューティングするには、最初にエラー メッセージをチェックして調査します。 メッセージには、詳細情報を含むリンクが含まれている場合があります。

次に、アプリをデバッグする前に、サーバーでアプリが正しく実行されていることを確認します。

それ以外の場合は、最も一般的な問題と解決策を次に示します。

インストールされているリモート デバッガーのバージョンが正しくありません

リモート コンピューターにリモート デバッガーを手動でインストールするシナリオでは、インストールされているバージョンが Visual Studio のバージョンと一致していることを確認してください。 リモート デバッガーをダウンロードするための現在のリンクについては、「 リモート デバッガー」を参照してください。

リリース ビルドは、デバッグ ビルドの代わりにサーバーにデプロイされます

発行ツールとその他の発行オプションには、個別のデバッグ構成設定を設定する必要があります。 (Visual Studio でアプリを実行するときにデバッグ ビルドを選択している可能性がありますが、サーバーにデバッグ ビルドをインストールしたわけではありません)。

リモート アプリケーションにアタッチすることはできますが、ブレークポイントにヒットすることはできません (またはデバッグ シンボルが読み込まれません)

この問題では、 シンボルが読み込まれていないというメッセージが表示される場合があります。

[モジュール] ウィンドウを使用して、モジュールのシンボルの読み込み状態と、デバッガーがユーザー コードまたはマイ コードとして扱うモジュールを確認します。

  • [ シンボルの状態] 列は、モジュールに対してシンボルが正しく読み込まれたかどうかを示します。
  • [ユーザー コード] 列は、デバッグしようとしているモジュールがマイ コードとして分類されているかどうかを示します。 マイ コードとして正しく表示されない場合は、サーバーにリリース ビルドがデプロイされている可能性があります。 リリース バイナリは最適化されており、マイ コードとは見なされないため、Just My Code を無効にするか、デバッグ ビルドをサーバーにデプロイします。
  • [ユーザー コード] 設定が正しく、シンボルが読み込まれていない場合は、デバッガーで正しいシンボル ファイルが使用されていることを確認します。 デバッガーは、アプリのビルド時に作成された .pdb ファイル (つまり、元の .pdb ファイルまたはコピー) と完全に一致するシンボル (.pdb ファイル) のみを読み込みます。 リモート Windows デバッグの場合、既定では、PDB ファイルは、サーバーからではなく、Visual Studio コンピューターで読み取られます。 (ただし、msvsmon にはコマンド ライン引数があり、リモートの .pdb ファイルへのフォールバックを有効にします)。

詳細については、「 ブレークポイントのトラブルシューティング」を参照してください。

(ASP.NET)サーバーで実行されている ASP.NET のバージョンが、アプリ用に構成されているバージョンと同じではありません

サーバーまたはローカル コンピューターに正しいバージョンの ASP.NET または ASP.NET Coreをインストールする必要がある場合があります。 アプリバージョンの ASP.NET をチェックするには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。 [ビルド] タブを確認します。サーバー上の ASP.NET の構成は、シナリオに固有です。 ASP.NET Framework アプリの場合は、 web.config ファイルでフレームワークのバージョンを設定する必要がある場合があります。

[プロセスにアタッチ] ダイアログ ボックスに必要なプロセスが表示されない

一部のシナリオでは、正しいプロセスに手動でアタッチする必要があります。 シナリオに [プロセスにアタッチ] を 使用していて、想定しているプロセスが表示されない場合:

  • 検索プロセス フィルターが以前に設定されている場合は、クリアする必要がある場合にチェックします。
  • [ すべてのユーザーのプロセスの表示 ] を選択して、他のユーザー アカウントで実行されているプロセスを表示します。
  • 低速接続の場合は、 自動更新を無効にすることができます。
  • 既定値から変更された場合、[ 接続の種類 ] フィールドと [ アタッチ先 ] フィールドによって、一覧に表示されるプロセスが制限される場合があります。

正しいプロセスにアタッチしていない

プロセスにアタッチを使用している場合は、正しいプロセスにアタッチしていることを確認してください。 詳細については、「 一般的なデバッグ シナリオ」を参照してください。

必要なポートが開いていない

ほとんどの ASP.NET セットアップでは、ASP.NET とリモート デバッガーのインストールによって、必要なポートが開かれます。 ただし、ポートが開いているかどうかを確認する必要がある場合があります。 たとえば、Azure VM のシナリオでは、 リモート デバッガー ポート とサーバー ポートを開く必要があります (たとえば、IIS ではポート 80 を使用します)。

リモート デバッガーの昇格された特権が必要な場合があります

一部のシナリオでは、リモート デバッガーを管理者として実行する必要がある場合があります。 詳細については、「 管理者としてリモート デバッガーを実行する」を参照してください。