我想知道如何以我想要的方式重新啓動我的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
當它沒有做任何事情時它不能睡覺嗎? –