1

我创建了一个 Windows 窗体应用程序,我想用它来连接到远程计算机并显示存储在文本文件中的数据。但是,当它尝试连接到远程计算机时,出现以下错误:

RPC 服务器不可用。(来自 HRESULT 的异常:0x800706BA)

我用来连接远程计算机的代码:

 var conOpt = new ConnectionOptions();
        conOpt.Impersonation = ImpersonationLevel.Impersonate;
        conOpt.EnablePrivileges = true;
        conOpt.Username = "username";
        conOpt.Password = "password";
        var scope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", "computername"), conOpt );

        scope.Connect();

在网上研究了这个之后,似乎由于服务器上的防火墙设置或与端口有关,该应用程序可能无法连接。或者也许我在代码中遗漏了一些东西?

这可能与远程计算机上允许特定应用程序连接的组策略有关吗?在配置方面还需要考虑什么?有没有更好的方法来做到这一点?

4

1 回答 1

1

远程机器是否在域中?如果是这样,请考虑将其包括在ConnectionOptions

conOpt.Authority = string.Format("ntlmdomain:{0}", domainName);

另外,请尝试使用 aSecureString作为SecurePassword属性而不是常规字符串。不要认为这很重要,但值得一试。这就是你创建一个SecureString

SecureString secureString = new SecureString();

foreach (char character in password)
{
     secureString.AppendChar(character);
}

conOpt.SecurePassword = secureString;

正如您所提到的,防火墙可能会阻止连接,尽管本地网络上的RPC连接通常不会被阻止(除非另有配置)。此外,要添加到 paqogomez 关于服务的评论,请确保远程过程调用 (RPC)(或远程过程调用 (RPC) 定位器,如果使用 XP 或 Windows Server 2003)正在运行。

于 2013-09-10T22:13:18.597 回答