我需要从同一台计算机(Windows 7 或 Server 2008)上的另一个(主)Windows 服务(从)控制。它无法启动或停止该服务。我需要做什么来控制服务?主服务是用C#编写的
更新: 主服务旨在成为一种看门狗 - 它监视与从服务器的 HTTP 连接,并在从服务器无响应(不返回任何 HTTP 数据)时重新启动从服务器。
最佳答案
您可以让主服务创建一个新进程,该进程创建一个隐藏的命令窗口,并带有一个参数,使其调用 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();
您需要替换命令中括号内的部分,如果有任何语法错误,抱歉,我正在平板电脑上输入此内容。
关于c# - 从另一个 Windows 服务启动和停止一个 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096969/