【发布时间】:2008-10-29 13:57:27
【问题描述】:
如果我在服务器上有 Windows 服务,更新服务的“最佳实践”是什么? (假设其中有错误,或者我需要为其添加更多功能)。
有没有一种方法可以关闭服务、修补它并以更自动化的方式启动和运行?
(任何带有代码的链接都会很棒)
【问题讨论】:
标签: windows-services
如果我在服务器上有 Windows 服务,更新服务的“最佳实践”是什么? (假设其中有错误,或者我需要为其添加更多功能)。
有没有一种方法可以关闭服务、修补它并以更自动化的方式启动和运行?
(任何带有代码的链接都会很棒)
【问题讨论】:
标签: windows-services
嗯,你总是可以在安装程序上升级版本(如果你使用过的话)并运行它,根据我的经验,它会用新版本覆盖旧版本。
或者您可以简单地关闭服务,复制新的 .exe(以及依赖项,如果有)并重新启动它。这一切都可以通过脚本和我想象的 NET 启动/停止功能来完成。
我确信有比这更好的方法......
【讨论】:
取决于您的服务是如何编写的 - 整体 EXE - 您需要使用选择的进程停止并重新启动它,例如安装程序、脚本 + 服务控制、批处理和 NET STOP/START 等。
如果你的结构有点不同,例如引导 EXE 将您的服务实现加载为可以卸载/重新加载的模块,然后您可以进行不同的对话。这当然要复杂得多。
我在 C# 中通过这样的托管解决方案取得了一些成功,类似的对话在这里:
【讨论】:
InstallShield 支持 Windows 服务。利用安装程序将使您的任务变得更加简单。
【讨论】: