c# - 从另一个 Windows 服务启动和停止一个 Windows 服务

标签 c# windows service

我需要从同一台计算机(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/

相关文章:

c# - 从SQL Server数据库表中检索最后一个ID

windows - 从命令行列出所有环境变量

C++ GUI 窗口绘制了代码不应该绘制的形状

json - 如何使用 PowerShell 在没有索引的情况下访问 JSON 文件中的数组对象

c# - 识别按钮并自动加载其目标的简单方法

c# - 如何在 Windows 窗体中使用 google text to speech api?

c# - 是否可以根据条件取消 .Select 语句中的 select 和 'Continue'?

.net - C#/.NET : Retrieving the contents/file attributes from a file inside a recycle bin

C# 控制台/服务器访问网站

angular - 如何等待服务 HTTP 调用在组件中完成