我编写了一个实用程序,它监视某个目录中的文件,然后将它们复制到远程计算机上的已定义目标位置。还有一项功能允许停止定义的服务,以便允许复制到目标。
在我们的工作环境中,这些远程计算机通常是VM(我们使用VMWare Workstation),这些计算机是VM子域的一部分,并配置为使用NAT网络(共享主机的IP地址)。因此,当我说“远程”时,它实际上指的是在主机上运行的VM。
对于我的实用程序,我正在尝试使用UNC路径将文件复制到目标目录,并使用机器名称使用ServiceController.GetServices(string machineName)
方法获取服务列表。
因此,如果您有一个名为server-1
的虚拟机,您可能会尝试将文件复制到\\server-1\c$\destinationfolder
。大部分时间都可以使用,但有时我会看到一个例外,因为找不到目标目录。发生这种情况时,我们在尝试获取远程计算机上的服务时也会看到错误 - “RPC服务器不可用。”
当VM重新启动时,一切正常......一段时间。
我正在努力解决这个问题,因为它是零星的并且不会影响大多数人。我想知道这是否是一个IP问题,VMWare在哪里更改IP并且它在主机缓存中陈旧? (如果我听起来像我真的不知道我在这里谈论的是什么,那只是因为我没有...我的网络知识是相当基本的)。当我查找“RPC服务器不可用”错误的问题时,我看到很多关于防火墙的答案,我不相信这里的情况。我们不会在内部运行像McAfee这样的任何东西,因为它大部分时间都可以运行,看起来不是原因。
任何人都有任何想法可能会导致这个问题?作为后续工作,如果它是一个陈旧的IP问题,我怎么能重新设置问题用于调试目的,所以我可以尝试找到一个好的方法来解决它?