【发布时间】:2012-03-16 18:03:58
【问题描述】:
我已成功创建了一个桌面共享解决方案,其中 RDPViewer 连接到 RDPSession。这一切都很好。然而,现在,我试图让相反的工作:使用 RDPViewer 的 StartReverseConnectListener 方法和 RDPSession 的 ConnectToClient 方法(会话端将连接到查看器端以解决 NAT/防火墙问题)。我已经按照http://msdn.microsoft.com/en-us/library/windows/desktop/aa373359%28v=vs.85%29.aspx 列出的步骤进行了操作,主要是:
查看器通过调用 StartReverseConnectListener 方法,为 bstrConnectionString、bstrUserName 和 bstrPassword 参数。
查看器通过调用 StartReverseConnectListener 方法,为 pbstrReverseConnectString 参数和有效值 bstrConnectionString、bstrUserName 和 bstrPassword 参数。
查看器将步骤 1 中获取的连接字符串发送给 分享者。
使用 C# 2010,我在 RDPSession 端完成了以下操作:
RDPSession session = new RDPSession();
session.Open();
session.Invitations.CreateInvitation(null, "test", "12345", 1);
然后,在 RDPViewer 方面,我已经完成了:
string reverseConnectString = axRDPViewer1.StartReverseConnectListener(null, null, null);
(上面的第 1 步)
axRDPViewer1.StartReverseConnectListener(reverseConnectString, "test", "12345");
(上面的第 2 步)
然后,回到 RDPSession 端,我尝试使用从查看器获得的 reverseConnectString 进行连接(我实际上将字符串保存到文件中,然后将其加载到 RDPSession 端):
session.ConnectToClient(reverseConnectString);
(上面的第 3 步)
一旦我执行了这个方法,RDPViewer 端就会断开连接,错误为 1798,根据http://msdn.microsoft.com/en-us/library/aa373802%28VS.85%29.aspx,这意味着:
ServerCertificateUnpackErr 1798
解压服务器证书失败。
我觉得我遗漏了一些明显的东西,但我不知道是什么。
有什么建议吗?
谢谢!
【问题讨论】:
标签: c# .net remote-access rdp desktop-sharing