我如何知道我的Windows服务何时不工作



我有一个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可能会声明服务没有响应,并导致不适当的关闭。

最新更新