局域网在线更新的各种优化

局域化的在线更新尝试过多次。使用过多种方案。


现在进行总结:

一:局域网环境:

  1:数据库。ip,用户名,密码 有时会调整。比如两年一次算好的。

  2:共享文件服务器。同上,运维经常更改IP,上线下线服务器。

  3:web服务器。同上。

二:其它规则说明:

  1:客户端程序,两种:有员工使用的前台程序,无人值守的后台程序。

  2:对于ip的变更,配置App.config是比较常见的方式,但是如果布署的后台程序太多,逐一调整是很痛苦的事。尽可能用自动化的方式完成。

  3:为了方便上传程序的操作,在线程序的程序清单存储在数据库里。每个程序的下载清单放在下载目录的XML里。


三:上传下载存储的选择:

 1:方案一:

       共享目录存放需要更新的数据。上传和下载都在这里进行。缺点也很明显

       1:容易被攻击。

       2:在用户在进行更新时,文件被锁,无法进行上传。

 2:方案二:

       布署一个WEB上传服务,然后共享文件设为只读,提供下载。缺点是:

      1:因为安全问题,有的员工可以访问HTTP,但不可以访问共享文件夹。所以无法正常更新。

 3:方案三:

      全部通过HTTP进行上传和下载服务。

      做到了这一步,其实都可以在公网上更新了。


四:客户端程序进行在线更新操作。

 1:首先程序不能覆盖自己,所以写一个独立的在线更新就是必要的了。比如命名为update.exe。

    2:为了简化维护起见,更新程序不设配置文件,信息全放在exe里。

   3:客户端程序上可以添加“在线更新”命令,执行时就是调用 update.exe {程序名}。然后关闭自己。

   4:update.exe等待执行程序退出后,进行下载操作,覆盖客户端程序。


五:客户端的启动检查更新提示

   1:其实比较好的方式是先启动update.exe。但这个配置比较烦琐。不考虑。

   2:首先,客户端要检查自己是否要更新。然后提示客户是否要更新。然后决定是否调用update.exe后退出。

     2.1:方案一:写一个下载类,在里面进行更新的检查和弹出对话框。缺点:

               程序有多个,万一URL发生变更,所有程序都要修改,维护量比较大。

     2.2:方案二:写一个DLL提供给各程序,封装相关的操作,缺点:

               如果DLL更新了,需要重新发布所有程序,或者要去各个服务器和用户机器上替换DLL。

     2.3:方案三:折中方案,前台程序支持启动检查,后台程序通过点击update.exe更新。

     2.4:方案四:在update.exe里增加检查模式。有更新则提示是否有更新程序。然后返回用户的选择。

               客户端以检查模式启动启动update.exe,检查其返回值,如果为1,则再次调用执行更新。


六:无缝切换环境。

   1:这里指的是发布服务器的IP发生了变更。怎么让所有的客户端程序知道这一点,并无缝切换。

   2:按照上面的设计,工作量全在update.exe上

        2.1:首先设置一个切换开关,决定是用前环境 ,还是新环境。这个值可以存在数据库里。方便各方操作。


七:update.exe的自我更新。

   1:让客户端程序更新update.exe是不错的选择。缺点是:

       所有客户端程序都要增加相关操作。拆中方案就是只让前台程序支持。

   2:所以可以考虑让update.exe更新自己,检查到自己要更新了。下载到临时目录里,然后启动它,由后者覆盖自己。


八:布署update.exe

    前台程序启动时自动下载update.exe

   后台程序则是在布署时复制一个update.exe过来,没想到更好的办法。


九:进一步的考虑:

    数据库是为了方便各程序同步。  对update.exe来说,可以只访问http。数据库操作封装到Web上。进一步简化操作。

    缺点是:如果web变迁,原来可以把新的web存到数据库。现在就没地方存了。也就是说数据库和Web并存时可以互相支持变迁。

    至于说两个Web并存几天,会出现这种情况:服务器换IP而已,所以不能并存。

    如果让update.exe缓存新的url,也是一种方案。只是违反了只有一个文件的原则。

    不知道以后又会出什么新情况。

    



      


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值