Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ServiceProcess.ServiceController是如何工作的?_C#_.net_Api_Service_Windows Services - Fatal编程技术网

C# ServiceProcess.ServiceController是如何工作的?

C# ServiceProcess.ServiceController是如何工作的?,c#,.net,api,service,windows-services,C#,.net,Api,Service,Windows Services,设置: 我们有两台服务器。它们位于不同的子网上,但仍然可以相互通信 问题: 服务器1用于使用ServiceController.Status呼叫成功查询服务器2的服务,直到我们的IT人员收紧了两个子网之间的防火墙(我们失去了对服务器2的RDP访问,并且ServiceController.Status从服务器1到服务器2的呼叫开始失败) 它稍微放松了防火墙(因此服务器2的RDP现在可以工作),但我们的ServiceController.Status调用仍然失败(错误是:无法打开计算机上的服务控制管

设置:

我们有两台服务器。它们位于不同的子网上,但仍然可以相互通信

问题:

服务器1用于使用
ServiceController.Status
呼叫成功查询服务器2的服务,直到我们的IT人员收紧了两个子网之间的防火墙(我们失去了对服务器2的RDP访问,并且
ServiceController.Status
从服务器1到服务器2的呼叫开始失败)

它稍微放松了防火墙(因此服务器2的RDP现在可以工作),但我们的
ServiceController.Status
调用仍然失败(错误是:无法打开计算机上的服务控制管理器)

问题:

ServiceProcess.ServiceController
如何执行其任务?它在工作时是否使用特殊的TCP端口

我怀疑防火墙正在阻止远程访问服务器2上的服务控制器,因此我想告诉我们的IT员工我们需要打开哪些端口


我已经看过了,但还没有找到我需要的东西。

查看这篇TechNet文章:。它包含可由RPC使用的协议及其关联套接字端口的表,.NET ServiceController类依赖于这些端口。您的IT员工可能在工作繁忙时关闭了其中一个或多个端口(一些端口比其他端口更重要,具体取决于有多少其他选项可用),从而导致RPC无法运行。

您确定这是RDP而不是RPC吗?RDP是远程桌面协议,用于终端服务,即Windows远程桌面。RPC是远程过程调用,用于进程间通信。RPC的工作方式多种多样,这取决于两个进程之间可用的通信模式(这反过来又取决于两个进程之间分隔了多少金属)。@KeithS:是的,我指的是RDP。在ServiceController调用开始失败的同时,我们失去了远程桌面访问。好吧,好吧,ServiceController不使用RDP实现其功能,所以你找错了方向,让RDP正常工作,并认为这将解决你的ServiceController调用问题。看看我的答案,确保IT人员提供对每个协议和服务类别列出的至少一个端口的访问。@KeithS:是的,但我认为根本原因可能是相同的(防火墙太严格)。这就是为什么我想看看我们的调用是如何工作的。