更新Windows服务的过程?自动化还是手动?

时间:2008-10-29 13:57:28

标签: windows-services

如果我在服务器上有Windows服务,那么更新服务的“最佳做法”是什么? (说它有一个错误,或者我需要为它添加更多功能)。

有没有办法可以关闭服务,修补它并以更自动化的方式启动和运行?

(任何带代码的链接都会很棒)

3 个答案:

答案 0 :(得分:1)

好吧,你总是可以在安装程序上升级版本(如果你使用过的那个)并运行它,根据我的经验,它会覆盖旧版本的新版本。

或者您可以简单地关闭服务,复制新的.exe(以及依赖项,如果有的话)并重新启动它。这可以通过脚本和我想象的NET启动/停止功能来完成。

我确信有更好的办法比这更好......

答案 1 :(得分:1)

取决于您的服务编写方式 - monolith EXE - 您需要使用选择的流程停止并重新启动它。安装程序,脚本+服务控制,批处理和NET STOP / START等。

如果你的结构有点不同,例如bootstrap EXE将您的服务实现加载为可以卸载/重新加载的模块,然后您可以进行不同的对话。这当然要复杂得多。

我在C#中取得了一些成功的主机解决方案,类似的对话在这里:

  

I want my C# Windows Service to automatically update itself

答案 2 :(得分:0)

InstallShield支持Windows服务。利用安装程序将使您的任务更加简单。