次の方法で共有


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

適用対象: Visual Studio

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

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

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

そうでない場合、最も一般的な問題と解決策は次のとおりです。

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

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

リリース ビルドは、デバッグ ビルドではなく、サーバーに展開する必要があります。

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

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

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

[モジュール] ウィンドウを使用して、モジュールのシンボル読み込み状態や、どのモジュールがデバッガーによってユーザー コード (マイ コード) として扱われているかを確認します。

  • [シンボルの状態] 列は、シンボルがモジュール用に正しく読み込まれているかどうかを示します。
  • [ユーザー コード] 列は、デバッグしようとしているモジュールがマイ コードとして分類されているかどうかを示します。 マイ コードとして正しく表示されない場合は、サーバーにリリース ビルドがデプロイされている可能性があります。 リリース バイナリは最適化され、マイ コードとは決して見なされないため、[マイ コードのみ] を無効にするか、デバッグ ビルドをサーバーにデプロイします。
  • ユーザー コード設定は正しいが、シンボルが読み込まれていない場合は、デバッガーが正しいシンボル ファイルを使用していることを確認します。 デバッガーは、アプリがビルドされたときに作成された .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 ファイルにフレームワークのバージョンを設定する必要がある場合があります。

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

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

  • 検索プロセス フィルターが以前に設定されている場合は、それをクリアする必要があるかどうかを確認します。
  • [Show processes for all users] (全ユーザーのプロセスを表示する) を選択して、他のユーザー アカウント下で実行されているプロセスを表示します。
  • 低速接続の場合は、自動更新を無効にすることができます。
  • 既定値から変更された場合、 Connection 型 フィールドと Attach to フィールドによって、一覧に表示されるプロセスが制限される場合があります。

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

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

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

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

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

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