我有一个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";
}
}
抱歉我的英文不好
答案 0 :(得分:2)
当服务停止时,将调用该服务的相应OnStop方法。在此函数中,您可以写入某个事件日志,或将消息发送到消息队列。
需要知道服务是否正在运行的代码,该代码必须轮询此共享源以了解服务何时停止。
那就是说,如果你能详细说明你的问题,我们可以帮助你更好。信息,例如,需要了解服务停止的代码是什么?如果它是一个Web应用程序,该服务可以在其OnStop期间进行http调用。
通常,它首选尽快使OnStop退出。如果OnStop中的代码耗时太长,Windows可能会声明服务无响应并导致不合适的关闭。
答案 1 :(得分:2)
捕获Stop等事件。例如,要知道何时“停止”:
protected override void OnStop()
{
// Let yourself know the service has been stopped
}
查看ServiceBase了解详情。