是否可以从服务本身以编程方式重新启动 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 服务?还是我应该选择其他方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c#.net 中以编程方式重新启动我的窗口服务

以编程方式停止和重新启动快速服务器(以更改端口)

以编程方式设置的主题。如何重新加载 Activity 以应用

C#:如何以编程方式检查 Web 服务是不是已启动并正在运行?

以编程方式停止 H2 数据库

是否可以以编程方式从 Android 中删除记住的 Wifi Direct 组?