停止服务

本文关键字:服务 | 更新日期: 2023-09-27 18:33:20

我正在尝试使用我制作的控制台程序停止正在运行的服务。这是我的代码:

ServiceController sc = new ServiceController(ServiceName, ".");
sc.Stop();

然后,我等待服务状态变为"已停止",但这从未发生过。它似乎已停止挂起,并且永远不会停止。当我检查 Services.msc 时,它被列为已停止,并且在任务管理器中,进程消失了。

它会永远保持待定状态吗?我做错了什么吗?如果我需要在那里修改某些内容,我也有该服务的代码。

停止服务

我做错了什么吗?

您可以在停止服务后尝试等待:

sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(25));

WaitForStatus 方法将等待服务达到指定状态或指定的超时过期,然后再返回。