开始&从另一个Windows服务停止Windows服务

时间:2014-04-16 00:37:47

标签: c# windows service

我需要在同一台计算机(Windows 7或Server 2008)上控制另一台(主服务器)的Windows服务(从服务器)。它无法启动或停止服务。我需要做些什么才能控制服务?主服务是用C#

编写的

更新: 主服务是一种看门狗 - 它监视与从属的HTTP连接,并在从属无响应时重新启动从属(不返回任何HTTP数据)。

2 个答案:

答案 0 :(得分:0)

您可以让主服务创建一个新进程,该进程创建一个隐藏的命令窗口,其中包含一个参数,该参数使其调用windows命令并启动或停止该服务。我们在工作中一直使用这个模型,一旦服务完成更改状态,/ C将导致命令窗口退出。

System.Diagnostics.Process p = new System.Diagnostics.Process ();
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo ( "cmd.exe", "/C net [start or stop] [service name]");
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.StartInfo = psi;
P.Start();

您需要替换该命令的括号部分,如果我在平板电脑上输入此语法错误,请对不起。

答案 1 :(得分:0)

处理Windows服务的最佳方法是使用System.ServiceProcess命名空间。检查: https://ourcodeworld.com/articles/read/363/how-to-start-stop-and-verify-if-a-service-exists-with-c-in-winforms

但是尝试这样做会遇到一些问题,因为您将需要管理员权限才能关闭其他服务,因此您可以通过以下链接进行处理(出于调试目的,您可以以admin身份打开VS,一切都会正常进行):< / p>

How do I force my .NET application to run as administrator?

相关问题