创建允许远程更新的Windows服务

简介: demo地址:ServerAutoUpdate.rar   测试步骤: 1) 安装ServerAutoUpdate.Server这个Windows服务,修改配置文件中Web服务地址为ServerAutoUpdate.

demo地址:ServerAutoUpdate.rar

 

测试步骤:

1) 安装ServerAutoUpdate.Server这个Windows服务,修改配置文件中Web服务地址为ServerAutoUpdate.SelfUpdateWinSerive.MgrSite

2) 打开ServerAutoUpdate.SelfUpdateWinSerive.MgrSite,选择一个服务,能看到已经有一个实例注册了,上传一个文件(比如可以更新一下ServerAutoUpdat.ServerCore的版本号然后更新)

3) 过一段时间点击查看更新结果可以看到服务端更新文件的结果

 

基本原理:

1) 要让Windows服务支持这种更新,只需要在OnStart的时候调用SelfUpdateModule.Register(),以及在OnStop的时候调用SelfUpdateModule.UnRegister()。(当然需要引用ServerAutoUpdate.SelfUpdateWinSerive.dll),Register的时候,访问Web服务把服务自己进行注册,在UnRegister的时候反注册。

2) 在ServerAutoUpdate.SelfUpdateWinSerive.MgrSite网站中的App_Data中维护了一个所有活动Windows服务的列表,可以用于更新。

3) 更新的时候调用SelfUpdateModule中的一个Remoting服务,推方式把新的文件推过去,服务端做到事情很简单,把文件保存在本地,然后调用Process.Start开启一个cmd,cmd执行暂停当前Windows服务的操作,然后更新文件并且启动服务(注意,由于服务重启,Remoting的这个服务只能是OneWay)。

4) 服务重启之后,SelfUpdateModule.Register()方法中会检查本地文件夹下有无更新文件夹,有的话调用Web服务通知更新结果,并且删除文件夹。

5) 在ServerAutoUpdate.SelfUpdateWinSerive.MgrSite网站中这个更新批次(temp目录下)的文件夹中会多一个result.txt,查看这个文件可以看到所有实例的更新结果。

 

其实说了这么多,更新的原理就是一句话“用Process.Start启动一个bat更新文件,否则本身很难更新本身依赖文件”。

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
4月前
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
81 6
|
2月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
3月前
|
边缘计算 安全 网络安全
|
3月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
112 9
|
3月前
|
应用服务中间件 Apache Windows
免安装版的Tomcat注册为windows服务
免安装版的Tomcat注册为windows服务
146 3
|
3月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
53 1
|
4月前
|
Java 应用服务中间件 Windows
windows服务器重装系统之后,Tomcat服务如何恢复?
windows服务器重装系统之后,Tomcat服务如何恢复?
70 10
|
4月前
|
消息中间件 Java Kafka
windows服务器重装系统之后,Kafka服务如何恢复?
windows服务器重装系统之后,Kafka服务如何恢复?
39 8
|
5月前
|
API Docker Windows
2024 Ollama 一站式解决在Windows系统安装、使用、定制服务与实战案例
这篇文章是一份关于Ollama工具的一站式使用指南,涵盖了在Windows系统上安装、使用和定制服务,以及实战案例。
2024 Ollama 一站式解决在Windows系统安装、使用、定制服务与实战案例
|
4月前
|
监控 Windows
Windows服务器的服务如何实现自动启动?
Windows服务器的服务如何实现自动启动?
807 1