因此,我在网络上的两台机器之间运行 DTC ping,并收到以下错误
++++++++++++++++++++++++++++++++++++++++++++++
DTCping 1.9 Report for WEB2
++++++++++++++++++++++++++++++++++++++++++++++
RPC server is ready
++++++++++++Validating Remote Computer Name++++++++++++
03-03, 13:39:45.099-->Start DTC connection test
Name Resolution:
internal-->10.20.3.236-->internal.something
03-03, 13:39:45.114-->Start RPC test (WEB2-->internal)
Problem:fail to invoke remote RPC method
Error(0x6BA) at dtcping.cpp @303
-->RPC pinging exception
-->1722(The RPC server is unavailable.)
RPC test failed
我也运行了 RPC ping,结果得到了我认为是相同的错误:
C:\Program Files\Windows Resource Kits\Tools>rpcping -s internal
Exception 1722 (0x000006BA)
Number of records is: 4
ProcessID is 5876
System Time is: 3/3/2011 2:44:12:822
Generating component is 8
Status is 1722
Detection location is 323
Flags is 0
NumberOfParameters is 0
ProcessID is 5876
System Time is: 3/3/2011 2:44:12:822
Generating component is 8
Status is 1237
Detection location is 313
Flags is 0
NumberOfParameters is 0
ProcessID is 5876
System Time is: 3/3/2011 2:44:12:822
Generating component is 8
Status is 10060
Detection location is 311
Flags is 0
NumberOfParameters is 3
Long val: 135
Pointer val: 0
Pointer val: 0
ProcessID is 5876
System Time is: 3/3/2011 2:44:12:822
Generating component is 8
Status is 10060
Detection location is 318
Flags is 0
NumberOfParameters is 0
我很确定异常编号 1722 是关键,但我找不到有关它的任何信息。
可能存在需要打开机器之间端口的防火墙,我现在正在与系统管理员核实此事。但我可以在机器之间进行常规 ping。
除此之外,我还阅读了很多关于操作系统服务和组件的文章,但我对此一无所知,也找不到任何相关信息。有人能解释一下吗?
仅供参考,该机器运行的是 Windows Server 2003 RS SP2。
答案1
RPC 使用随机高端口,这些端口很可能被设备之间的任何防火墙阻止。
可以将其锁定到一组端口范围,以便允许该范围通过防火墙;此知识库文章涵盖该过程。
在我上次不愉快的 DTC 穿越防火墙的经历中,除了需要对端口范围进行硬编码外,我记得还需要进行一些其他神秘的注册黑客攻击,以及违背我的判断放宽组件服务管理工具中的一些安全设置。希望你有更好的运气;从端口开始,看看进展如何!
(PS,为什么应用程序仍然使用并且微软仍然支持 DTC?)