是否可以从服务本身以编程方式重新启动Windows服务?或者我应该选择其他方法?

时间:2017-01-27 07:45:06

标签: c# windows vb.net windows-services

我想重启服务的原因是因为 有时其中一个服务停止执行它所做的任务。 服务状态仍在服务控制管理器中运行。当。。。的时候 服务重新启动然后一切正常。我不知道为什么会这样 发生。我已经尝试在代码中捕获无处不在的块。数据库 连接是创建/打开/关闭/销毁等。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

以下是您的选择:

  1. Fix the underlying problems如果可以的话。

  2. 如果您无法解决潜在的问题(例如,您有一些非常复杂或不透明的代码),请将麻烦的代码移到单独的进程中。您的服务可以产生此过程并偶尔杀死它。给它自己的进程允许你中止它并回收资源,即使它冻结了。将服务设为simple wrapper

  3. 如果您不想拆分代码,并且服务的要求非常适合这种情况,也许您可​​以将其设为简单的可执行文件,并使用{{运行它3}}而不是服务。

  4. 如果您无法修改服务本身,可以Windows Task Scheduler