我有一个 Windows 服务,它将每两周更新一次
我已经在 DLL 中获得了所有有用的代码,该服务只是几个简单的Start
方法Stop
,它们映射到 DLL 中的相同方法。
我使用控制台应用程序来开发/调试 DLL,所以我想知道;而不是服务直接引用 DLL 并且每次我进行更新时都需要卸载/重新安装,使用该服务来包装控制台应用程序有什么缺点吗?
也就是说,而不是...
Private MyService as IMyService
Sub Start()
MyService = New MyService()
MyService.StartAsync()
End Start
做类似...
Const ServiceExecutablePath As String = "C:\Blah\MyService.exe"
Private MyService as Process
Sub Start()
MyService = Process.Start(ServiceExecutablePath)
End Start
这样,如果我想发布,我需要做的就是停止服务,替换可执行文件(和相关的 DLL),然后重新启动它。
我还没有完全弄清楚如何优雅地关机。控制台应用程序侦听CTRL C中断和调用MyService.Shutdown(Graceful:=True)
(阻塞调用)。我应该尝试从服务中模拟相同的内容还是有更好的方法?