Moi*_*oiz 3 c# windows-services
我创建了一个服务,通过 MSMQ 向该服务发送命令。
现在我需要重新启动服务,但是当它到达停止命令时,它只会抛出错误,或者在执行此任务的服务停止时无法读取下一行。
我正在使用的代码是:
ServiceController service = new ServiceController(serviceName);
try
{
int millisec1 = Environment.TickCount;
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
ShutdownService(serviceName, timeoutMilliseconds);
// count the rest of the timeout
int millisec2 = Environment.TickCount;
timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2 - millisec1));
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch (Exception ex)
{
s_log.Error(ex);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能自行重新启动服务,因为从逻辑上讲,当服务停止时,它不会执行下一行代码。
小智 5
右键单击该服务并选择其属性,然后选择恢复选项卡。将服务设置为在第一次失败后重新启动。然后要重新启动服务,只需调用Environment.Exit(1)Windows就会重新启动该服务。