バックグラウンド
特定のディレクトリ内のファイルを監視し、それらをリモート マシン上の定義済みのターゲット ロケーションにコピーするユーティリティを作成しました。ターゲットへのコピーを許可するために、定義されたサービスを停止できる機能もあります。
私たちの作業環境では、これらのリモート マシンは通常 VM (VMWare Workstation を使用) であり、マシンは VM サブドメインの一部であり、NAT ネットワークを使用するように構成されています (ホスト マシンの IP アドレスを共有します)。したがって、「リモート」と言うときは、実際にはホスト上で実行されている VM を指しています。
問題
私のユーティリティでは、UNC パスを使用してターゲット ディレクトリにファイルをコピーし、マシン名を使用して、ServiceController.GetServices(string machineName)
メソッドを使用してサービスのリストを取得しようとしています。
という名前の VM がある場合server-1
、ファイルを にコピーしようとしている可能性があります\\server-1\c$\destinationfolder
。ほとんどの場合、これでうまくいきますが、ターゲット ディレクトリが見つからないために例外が発生することがあります。これが発生すると、リモート マシンでサービスを取得しようとすると、「RPC サーバーが利用できません」というエラーも表示されます。
VM を再起動すると、すべてが正常に機能します...しばらくの間。
この問題は散発的であり、ほとんどの人には影響しないため、この問題を特定するのに苦労しています。VMWare が IP を変更し、ホストのキャッシュ内で古くなった IP の問題であるかどうか疑問に思っています。(ここで何を話しているのかよくわからないように聞こえるとしたら、それは単に、わからないからです... 私のネットワークに関する知識はかなり基本的なものです)。「RPC サーバーが利用できません」というエラーに関する問題を調べると、ファイアウォールに関する多くの回答が表示されますが、ここでは当てはまらないと思います。McAfee のようなものは内部で実行していません。ほとんどの場合は動作するため、原因とは思えません。
実際の質問
この問題の原因について考えている人はいますか? フォローアップとして、それが古い IP の問題である場合、デバッグ目的で問題を再現するにはどうすればよいですか?