如何从中央位置更新 .net Windows 服务

Cra*_* HB 5 .net deployment windows-services process

我们已经构建了一个.NET Windows 服务,我们将其安装在客户端 PC 上,以从这些 PC 监控和上传数据(通过 Web 服务)。我正在寻找一种方法来集中更新所有客户端 PC 上的 Windows 服务——而不必远程进入每个商店。

以下是一些细节(尽管我认为这并不重要):

  • Windows 服务:.NET 版本 2(由于客户端 PC 的限制)- VB.NET
  • Web 服务:.NET 版本 4 - VB.NET
  • 客户端 PC 操作系统:Win2000 到 Win7、POSReady、WEPOS

一些额外的信息

  • 我们有一个运行良好的设置文件,但我们需要远程进入每个商店才能运行它。而且有100多家店!
  • 我们曾考虑将安装文件放在 FTP 站点上,但被告知 Windows Embedded 操作系统不支持 FTP,因此我们可能会通过 Web 服务发送文件
  • 每个 Windows 服务每分钟调用一次 Web 服务方法,该方法返回一些 XML,可用于发送更新 Web 服务的指令。

这似乎是开发人员已经需要多次解决的标准问题。如果有人有任何建议或可以建议他们使用的流程,那真的会对我们有所帮助。

更新

  • 我可以更改 Windows 服务和 Web 服务以添加此新的更新功能
  • 看起来我有办法获取安装文件(从网络服务方法下载),但是运行它呢?如何运行安装程序,然后确保 Windows 服务已关闭?安装程序是否这样做或 Windows 服务?

Yoc*_*mer 3

如果您有 Web 服务,则可以添加更新方法。

创建一个小的更新安装程序或应用程序(您将在本地运行)。
然后在 Web 服务中添加一个返回 Stream 或 byte[] 数组的方法。
在 Web 服务的方法中,将二进制安装程序文件读入 byte[] 数组或流中,并将其发送到客户端。

然后让客户端将该流保存到文件中,现在您在客户端计算机上有了安装程序。
剩下要做的就是运行该进程并更新服务。