设置:
我们有2台服务器。它们位于不同的子网上,但仍可以相互通信。
问题:
服务器1用于通过ServiceController.Status
呼叫成功查询服务器2的服务,直到我们的IT人员收紧两个子网之间的防火墙(我们失去了对服务器2的RDP访问和来自服务器1的ServiceController.Status
呼叫到服务器2开始失败)。
IT已经放宽了防火墙(因此RDP到服务器2现在可以正常工作),但我们的ServiceController.Status
调用仍然失败(错误是:无法打开计算机上的服务控制管理器)
问题:
ServiceProcess.ServiceController
如何执行它的任务?在做它的工作时它是否使用特殊的TCP端口?
我怀疑防火墙阻止远程访问服务器2上的服务控制器,因此我想告诉我们的IT员工我们需要打开哪些端口。
我看过the MSDN page,但我无法找到我需要的东西。
答案 0 :(得分:3)
查看此TechNet文章:http://technet.microsoft.com/en-us/library/cc738291(v=ws.10).aspx#w2k3tr_rpc_how_vfae。它包含一个可以由RPC使用的协议及其相关套接字端口的表,.NET ServiceController类依赖它。您的IT员工可能会在他们的活力中关闭一个或多个这些端口(有些端口比其他端口更重要,具体取决于可用的其他选项),使RPC无法运行。