我想知道如何以我想要的方式重新启动我的Windows服务。Windows服务重新启动
我有这样的解决方案:
private const int RestartTimeout = 60000; // 1 minute
public void Control(string serviceName)
{
service = new ServiceController(serviceName);
}
public bool RestartService()
{
try
{
Control("MyService");
service.Refresh();
if (service.Status != ServiceControllerStatus.Stopped)
{
mytimer.Enabled = false;
service.Stop();
int i = 0;
service.Refresh();
while (service.Status == ServiceControllerStatus.Stopped || service.Status == ServiceControllerStatus.StopPending)
{
i++;
Thread.Sleep(100);
if (i >= RestartTimeout/100)
{
return false;
}
}
service.Start();
return true;
}
service.Start();
return true;
}
catch (Exception ex)
{
return false;
}
}
我得到超时错误,当它到达while循环。我想这是因为服务已经停止了?
我真正想在这里实现的是停止服务,然后再次启动服务之前再睡1分钟。
Please help.Thanks!谢谢!
出于兴趣,重新启动服务有什么用? –
我的服务通常只运行3-5分钟,但如果超过这个时间,它将自动重新启动,以防止它挂起或吃掉我的机器上的资源。谢谢 – SyntaxError
当它没有做任何事情时它不能睡觉吗? –