首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从中心位置更新.net windows服务

如何从中心位置更新.net windows服务
EN

Stack Overflow用户
提问于 2011-02-03 21:32:16
回答 2查看 2.1K关注 0票数 5

我们已经构建了一个.NET Windows ,安装在客户端PC上,以监视和上传来自这些PC机的数据(通过web服务)。我正在寻找一种方法,更新所有客户端PC上的windows服务集中-无需远程进入每一家商店。

这里有一些细节(尽管我认为这并不重要):

  • Windows服务:.NET版本2(由于客户端PC限制)- VB.NET
  • Web Service:.NET version 4-.NET PC OS: Win2000 to Win7,POSReady,WEPOS

一些额外的信息

  • 我们有一个运行良好的安装文件,但是我们需要远程进入每个商店才能运行它。
  • 我们曾考虑过将安装文件放在FTP站点上,但被告知OSes不支持FTP,所以我们可以每分钟通过web服务
  • 发送该文件一次,每个窗口服务调用一个返回某个XML的web服务方法,该方法可用于发送用于更新web服务的指令。

这似乎是开发人员需要多次解决的一个标准问题。如果有人有任何建议或可以建议一个他们使用的过程,这将真正帮助我们。

更新

我可以更改functionality

  • Looks服务和服务来添加这个新的更新的
  • ,就像我有一种获得安装文件(从web服务方法下载)的方法一样,但是运行它怎么样?如何运行安装程序,然后确保Windows服务已关闭?安装程序是这样做的还是Windows服务?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-03 21:39:15

如果您有web服务,则可以添加用于更新的方法。

创建一个小的更新安装程序或应用程序(您将在本地运行)。

然后在web服务中添加一个返回Stream或byte[]数组的方法。

在web服务的方法中,将二进制安装程序文件读入byte[]数组或流,并将其发送到客户端。

然后让客户端将该流保存到一个文件中,现在在客户端计算机上有了安装程序。

剩下要做的就是运行该进程并更新服务。

票数 3
EN

Stack Overflow用户

发布于 2011-02-03 21:43:13

如果修补程序是MSI包,则可以使用在AD服务器控制下将更新推送到同一网络中的计算机。更新将立即或在下一次启动时运行。

您可以自己推送包,但必须有某种传输机制在另一端监听,由具有足够智能和权限的程序控制,以便自动执行更新。

除非AD,否则这可能是您最好的选择:使用普通网络文件共享将更新推到客户端。客户端计算机必须在运行,但可以在欢迎屏幕上运行。然后,在Documents &User/All User/Start菜单/Startup文件夹中放置一个批处理文件,该文件夹将执行MSI的“罐装安装”(基本上告诉MSI使用默认安装参数执行静默安装)。在下一个用户登录时,批处理文件将运行,执行安装。MSI可能会在之后清理批处理文件。如果您可以远程访问客户端计算机的注册表(我对此非常怀疑),您可以将批处理文件放在某个临时目录中,并将对其的引用放在RunOnce注册表文件夹中。

一次浏览这个rigamarole可能会教您构造这样的应用程序,通过一个已知的web服务来检查和下载它们自己的更新,或者设置它们使用ClickOnce部署(这会使安装目录变得混乱,但更新部署变得简单得多)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4891976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档