我正在尝试使用我制作的控制台程序停止正在运行的服务。 这是我的代码:
ServiceController sc = new ServiceController(ServiceName, ".");
sc.Stop();
然后我等待服务状态,变成Stopped,但这种情况永远不会发生。 它似乎有StopPending,从不转到Stopped。 当我检查Services.msc时,它被列为已停止,并且在任务管理器中,该过程已经消失。
它会永远待在待定状态吗?难道我做错了什么? 如果我需要修改那里的东西,我也有服务的代码。
答案 0 :(得分:5)
我做错了吗?
停止服务后,您可以尝试waiting:
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(25));
WaitForStatus
方法将等待服务达到指定状态,或等待指定的超时时间到期。