我想重新启动名为“Spooler”的窗口服务我做了以下代码,但没有运气,任何人都知道发生了什么问题? 代码是
using System.ServiceProcess;
ServiceController service = new ServiceController("Spooler");
if ((service.Status.Equals(ServiceControllerStatus.Stopped)) ||
(service.Status.Equals(ServiceControllerStatus.StopPending)))
{
service.Start();
}
else
{
service.Stop();
service.Start();
}
异常(exception)是
"System.InvalidOperationException: Cannot start service Spooler on computer '.'. ---> System.ComponentModel.Win32Exception: An instance of the service is already running
--- End of inner exception stack trace ---
at System.ServiceProcess.ServiceController.Start(String[] args)
at System.ServiceProcess.ServiceController.Start()
at servicerestart.Form1.button1_Click(Object sender, EventArgs e) in D:\samplecodes\servicerestart\servicerestart\Form1.cs:line 33"
最佳答案
您必须在停止服务后等待,然后才能使用 WaitForStatus
再次启动它方法:
else
{
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running);
}
关于c# - 如何重启窗口服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183810/