服务类升级的原理与操作顺序是,先选择好要升级的服务文件后,在升级器编译好服务文件,成功后,点击【一键升级】(程序会先压缩服务程序包,上传到指定ftp后,启动服务端wcf任务,先下载ftp上的升级包后,停止待升级Windows服务,并进行压缩备份成功后,删除待升级服务所在文件夹下的所有文件【这里有待优化】后,直接将升级包的文件解压到服务所在文件夹,完成此动作后,重新开启,Windows服务),成功一键升级后,就可以根据自己的配置自动测试,我这里是测试的wcf实现restful的相关接口测试,如果升级不成功,可以直接点击【一键回滚】,服务端Wcf可以直接用刚备份好的程序覆盖到服务所在文件夹,下面就列出每一个动作的截图
A、配置UpdateServiceConfig.xml,内容如下:
<serviceconfig key="YBFWebApiServiceController" value="WebAPi微服务" target="test-lan"
publishpath="F:\win8fileY-BaseFramework.YBF\YBaseFramework.YBF.Publish\YBF.WebApiServiceController"
uploadlocalpath="F:\win8file\Y-BaseFramework.YBF\YBaseFramework.YBF.Web\YBaseFramework.YBF.AutoDeployManageTool\bin\Debug\UpdatePack\{0}.zip"
stopservices="stop"
bakservices="F:\win8file\Y-BaseFramework.YBF\YBaseFramework.YBF.ServicesRun\YBF.WebApiServiceController"
startservices="start"
wcfserviceurl="http://127.0.0.1/Local/LocalService.svc">
<command name="Build">
<![CDATA[
%SYSTEMROOT%Microsoft.NETFrameworkv4.0.30319MSBuild.exe F:win8fileY-BaseFramework.YBFYBaseFramework.YBF.ApiServicesYBaseFramework.YBF.ApiServices.sln /t:Rebuild /p:Configuration=Debug /l:FileLogger,Microsoft.Build.Engine;logfile=logs/Build.log
]]>
</command>
</serviceconfig>
<!--publishpath 发布服务程序路径-->
<!--uploadlocalpath 上传更新包-->
<!--stopservices 停止服务-->
<!--bakservices 备份服务-->
<!--startservices 开启服务-->
<!--wcfserviceurl 自动化服务器端访问地址-->
<!--value 名称-->
<!--target test-lan online-wan -->
以上内容请根据自己的实际情况进行配置,如有问题可以联系我。
B、编译服务项目,如图
图1
表示编译成功,可以进行下一步,工具目前并没有判断上一步的状态。
C、一键升级 指定配置节点的服务,如图:
图2
图3
图4
以上三张图,说明服务已经成功升级,可以根据自动化测试的配置进行下一步操作了。
D、自动测试,先要在UpdateServiceConfig.xml文件中配置,内容如下:
<!--测试服务配置部分-->
<testserviceconfig key="YBFWebApiServiceController">
<testitem name="LoginCheck0" paramtype="form" type="post" url="http://localhost:3721/hw/demo/HelloWorld/LoginCheck.html" item="status" result="0" remark="自动化测试登录接口">
<command name="param">
<![CDATA[
USERNAME=yaosy&PASSWORD=123456&vastr=81aef5c9ac742ca56a121390ea5264ec
]]>
</command>
</testitem>
<testitem name="LoginCheck2" paramtype="form" type="post" url="http://localhost:3721/hw/demo/HelloWorld/LoginCheck.html" item="status" result="2" remark="自动化测试登录接口">
<command name="param">
<![CDATA[
USERNAME=yaosy&PASSWORD=&vastr=81aef5c9ac742ca56a121390ea5264ec
]]>
</command>
</testitem>
</testserviceconfig>
Key 对应服务节点 Name 为名称 paramtype 为类型 form/json type为提交方式 get/post url为接口地址 item为比较结果名称 result 为比较结果 command中的内容为参数部分
成功配置以上节点内容后,可以点击【自动测试】,如图:
图5
以上是相关的接口,不一样的比较结果,得到两个状态。
E、在升级和自动测试不通过后,我们可以进行【一键回滚】,如图:
图6
图7
到此,服务类的升级已基本完成,站点站点的升级原理和服务升级一样,只是停用的是站点的应用程序池(因为IIS的版本很多,单独操作指定站点目前没有什么好的办法,如果有人知道更多好的办法,也可以联系我,感谢!)
相关工具下载:
字符串加密工具:下载
服务器端Wcf服务:下载
客户端升级工具:下载