web-dev-qa-db-ja.com

Visual Studio(VS2008)、Windowsフォームアプリケーションでのリモートデバッグ

Windowsフォームアプリケーション(C#)をリモートデバッグしようとしていますが、常に次のエラーが発生します。

'XXXという名前のMicrosoftVisualStudioリモートデバッグモニターに接続できません。ターゲットコンピューター上のVisualStudioリモートデバッガーは、このコンピューターに接続できません。認証に失敗しました。ヘルプが必要な場合は、ヘルプを参照してください。

MSDNガイドに従って構成しようとしましたが、機能させることができませんでした。

私のセットアップ:

  • 開発用コンピューター-XP(x86)ドメインに接続されています。
  • テストコンピュータ-ドメインに接続されている[〜#〜] not [〜#〜] Vista(x86)。
  • マシン間にネットワーク接続があります。
  • テストコンピューター(user1)に、Visual Studioを実行しているドメインユーザーの名前(mydomain\user1)を使用してローカルユーザーを作成しました。同じパスワードを設定します。
  • 私が実行しているテストコンピュータで"msvsmon.exe"アプリケーションとして(サービスとしてではなく)、"runas"コマンドを使用して実行しています。作成しました。 (user1):

    runas/u:user1 msvsmon.exe

誰かが私を助けてくれますか?

ありがとう。

32
Baget

これは私にとってそれがどのように機能したかです:

リモートコンピューター:Microsoft Virtual PC、企業ドメインに接続された「IHS\RDM」、jdoe、管理者アカウントとしてログイン。

ローカルコンピューター:ローカルドメインに接続され、jdoe、管理者アカウントとしてログインします。

1)リモートコンピューター:rdbgsetup.exeをインストールします(Visual Studio 2005\Disk 2\Remote Debugger\x86から​​)

2)リモートコンピューター:RUNAS/user MYDOMAIN\jdoe/netonly msvsmon

3)リモートコンピューター:msvsmon-> Tools-> permits add user "MYDOMAIN\jdoe"(再起動するたびにこれを行う必要があります)

4)ローカルコンピューター:msvsmonを実行します。

5)ローカルコンピューター、msvsmon->ツール->権限、オブジェクトタイプの追加:「コンピューター」、「IHS\RDM」

6)ローカルコンピュータ、vs2005->デバッグ->プロセスへの接続。トランスポート:デフォルト、修飾子:jdoe @ RDM

7)リフレッシュして、出来上がり。プロセスリスト!

7
Jason

私が抱えていた問題は、2人のユーザーがいたことです。

mydomain\user1
mytestmachine\user1

それは正しくありません(Gregg Miskelyによると)私は開発用コンピューターでローカルユーザーを定義する必要がありました。例:

mydevcomputer\debug
mytestmachine\debug

同じパスワードを使用して、このユーザーでVS2008とデバッグモニターを実行します。

9
Baget

Gregg Miskelyは、サービスアカウントに管理者権限が必要な理由について ブログ投稿 を持っています(そのように設定されている場合)。ポイントの1つは、ユーザーアカウント(この場合はテストマシンのユーザー)が、他のコンピューターに接続し直すための特権を持っている必要があるということです。アカウントmydomain\user1に開発用コンピューターに接続するための十分な権限がない場合に発生しているようです。

それでもGreggのブログ投稿を熟読するのに役立たない場合は、Greggにメールを送信すると役立つ可能性があります。

2
Steve Steiner

つまり、あなたは開発者であり、ユーザーの1人が例外を受け取り、例外ウィンドウを閉じずにリモートでデバッグしたいのですが、ユーザーは別のユーザーアカウントとしてログオンしています。結局のところ、アプリケーションをデバッグすることはできますが、注意が必要です。

0)リモートアプリマシンとローカルVisual Studioマシンの両方で、一致するローカルアカウントが必要です。つまり、ユーザーのコンピューターにアカウントを追加します。

1)/ netonlyオプションを指定してrunasを使用する必要があります。コマンドを開きますmsvsmonがあるフォルダーにプロンプ​​トを表示し、次のように入力します

runas /user:[user] /netonly msvsmon

これにより、msvsmonは、ネットワークにアクセスするとき(たとえば、msvsmonがローカルVSマシンに接続するとき)にのみユーザーの資格情報を使用します。/netonlyを使用せずにrunasで呼び出すと、msvsmonは混乱します。

2)リモートデバッグモニターの[ツール]-> [アクセス許可]メニューを使用して、リモートアプリケーションマシンに接続するためのローカルVisualStudioマシンのアクセス許可を追加する必要があります。

1
user189403

TESTCOMPUTER\user1のパスワードはmydomain\user1と同じですか?

リモートデバッグサービスの代わりに、ターゲットコンピューターでmsvsmon.exeを実行してみることもできます。 「実行...」を使用して、さまざまな資格情報で実行できます。 msvsmon,exeで動作するようになると、リモートデバッガサービスをインストール(または再度有効化)して、それらの資格情報で実行できるようになります。

編集:

msvsmon.exeの[アクセス許可]プロパティページを使用して、ターゲットマシンのドメインユーザーに適切なデバッグアクセス許可を設定できるはずです。

http://msdn.Microsoft.com/en-us/library/ms164722.aspx

1
Michael Burr

そのため、アカウントなしでは返信できず、自分のコメントにしか返信できませんが、登録したアカウントは投稿した匿名アカウントとは別のものなので、これは「新しい回答」である必要があります。ごめんなさい。

バゲット-今日この作業を行ったとき、リモートデバッグモニターPCとVisual StudioPCの両方でローカルアカウントを作成しました。 RDMはドメイン上になく、VSはドメイン上にありました。両方のローカルアカウントは、私のドメインアカウントと同じ資格情報を持つ管理者です。別のアカウント(管理者でもある)から、netonlyスイッチを使用して昇格されたプロンプトからrunasを呼び出しました。ドメインにユーザー名を指定する必要がある場合とない場合がありますが、パスワードはすべて一致する必要があるため、それほど重要ではないと思います。

VSを実行しているユーザーアカウントがデバッグ権限で接続できるように、RDMで権限を調整することを忘れないでください。リストに誰を追加できるかについてはかなり慎重なので、最初にローカルアカウントを作成しないと、かなりイライラします。また、別のユーザーアカウント名でRDMを実行している場合は、リモートコンピューターに接続するときに、完全なサーバー名を使用する必要があります。同じユーザーアカウントからRDMとVSの両方を実行する場合は、コンピューター名だけで済ませることができます。

0
ajs410