我有一个windows服务,我想知道它什么时候不工作——不是每xx分钟左右,而是什么时候停止
我有这种方法
public string ServiceStatus()
{
switch (_service.Status)
{
case ServiceControllerStatus.Running:
return "Running";
case ServiceControllerStatus.Stopped:
return "Stopped";
case ServiceControllerStatus.Paused:
return "Paused";
case ServiceControllerStatus.StopPending:
return "Stopping";
case ServiceControllerStatus.StartPending:
return "Starting";
default:
return "Status Changing";
}
}
抱歉我的英语不好
捕获Stop等事件。例如,要知道您何时被"停止":
protected override void OnStop()
{
// Let yourself know the service has been stopped
}
有关详细信息,请查看ServiceBase。
当服务停止时,会调用服务的相应OnStop方法。在这个函数中,您可以写入一些事件日志,或者向消息队列发送消息。
需要知道服务是否正在运行的代码,该代码必须轮询该共享源以了解服务何时停止。
也就是说,如果你能详细说明你的问题,我们可以更好地帮助你。有关服务停止,需要通知的代码是什么?如果是web应用程序,该服务可以在其OnStop期间进行http调用。
通常,最好尽快退出OnStop。如果OnStop中的代码花费太长时间,Windows可能会声明服务没有响应,并导致不适当的关闭。