C#Windows服务使用错误代码自行停止

我开发了一个Windows服务,该服务似乎偶尔会崩溃。

为了解决这个问题,我已经写了我的崩溃到try catch方法的方法,该方法将记录错误的原因。

然后,我想停止服务。

我知道如何使用Stop()方法停止该服务,但是我也希望该服务在10分钟后重新启动

我可以使用Windows服务上的“恢复”选项卡来完成此操作

https://i.gyazo.com/b87020b24c9137abe2aa3cee8f7301fd.png

所以我想知道的是,如何以服务控制器知道这是故障而不只是正常停止的方式停止Windows Service?

我尝试传递错误代码,但这不起作用

catch (Exception exep)
{

   Stop(1);
}

因此,如何以控制器知道其错误的方式停止我的服务,并在十分钟后重新启动它

评论
  • isunt
    isunt 回复

    您可以使用下面的代码块来停止服务

      service.Stop();
      service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromMinutes(10));
    
    

    然后开始使用

    service.Start();
    service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromMinutes(10));