【发布时间】:2015-04-10 11:34:35
【问题描述】:
我创建了一个服务,通过 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);
}
如何在服务停止时自行重启服务,它不会执行下一行代码。
【问题讨论】:
-
我只从这个链接中选择了这个代码。但是当我试图停止服务时,它会被释放,当我尝试访问服务对象时,它会再次抛出错误
-
为什么需要重启服务?猜你做错了什么。
-
它基于我系统中的一些影响我的服务的参数。所以当参数改变时,我需要我的服务来实现这些效果。
标签: c# windows-services