如以下链接所示,可以使用 C# 代码停止、启动和“停止,然后启动”服务。
http://www.csharp-examples.net/restart-windows-service/
我已经烘焙了一个 .NET 服务,它实现了OnStart
和OnStop
. 但是,我需要实现一个“智能重启”功能,而不仅仅是停止然后启动。如果那样的话,我需要将停机时间保持在几秒钟内(但是在这种情况下,如果干净地完成,停止 + 启动可能需要几分钟,而且我必须干净地完成它),并且系统的某些部分可用,而其他部分正在重新启动/刷新.
长话短说——在我开始实现这个OnSmartRestart
功能之前,我想确保有一种相当简单的方法可以从另一个 C# 应用程序调用这个调用。
此功能很重要,但也很危险。我想让它相当隐藏,有点安全,也保持简单,并确保这对我的 Windows 服务的性能影响可以忽略不计,而它正在执行它的日常琐事而不是重新启动。
如果我必须轮询某个文件或打开一个端口并为此花费过多的 CPU,那将不是一个好的解决方案。我也想尽可能简单(抱歉重复)。