是否可以从服务本身以编程方式重新启动 Windows 服务?还是我应该选择其他方法? [复制]
Posted
技术标签:
【中文标题】是否可以从服务本身以编程方式重新启动 Windows 服务?还是我应该选择其他方法? [复制]【英文标题】:Is it possible to restart the windows service programmatically from the service itself ? Or should I chose some other approach? [duplicate] 【发布时间】:2017-06-12 20:18:00 【问题描述】:我想重启服务的原因是 有时其中一项服务会停下来完成它所要完成的任务。 服务状态仍在服务控制管理器中运行。当。。。的时候 服务重新启动,然后一切正常。我不知道为什么 正在发生。我在代码中尝试并捕获块 everywhere。数据库 连接被创建/打开/关闭/销毁等。
有什么想法吗?
【问题讨论】:
回答您的问题“或者我应该选择其他方法吗?” 是。您应该解决根本问题。你怎么知道(可靠地)何时重启? 谁会重新启动它? 【参考方案1】:以下是您的选择:
Fix the underlying problems 如果可以的话。
如果您无法解决根本问题(例如,您有一些极其复杂或不透明的代码),请将麻烦的代码移至单独的进程。您的服务可以生成此进程并偶尔终止它。给它自己的进程允许你中止它并回收资源,即使它冻结了。将服务设为simple wrapper。
1234563 .如果不能修改服务本身,可以restart the service programmatically。
【讨论】:
以上是关于是否可以从服务本身以编程方式重新启动 Windows 服务?还是我应该选择其他方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式设置的主题。如何重新加载 Activity 以应用