• 【G】开源的分布式部署解决方案文档


    G.系列导航

    【G】开源的分布式部署解决方案 - 导航

    微软官方部署方式

    右键项目->发布

    这个大家应该再熟悉不过,在部署前有个预览界面可以看本次更新到底更新哪些文件。

    既然它可以预览部署结果,那其实它部署也不会完全覆盖,而是采取部分覆盖的方式,并提供了增、删、改的实际数量。

    这都要依赖一个叫做 Web Deploy 的项目。 传送门

    当然,web deploy功能绝不仅仅如此,包括打包、备份、还原、更新数据库等。

    在此不多做普及,提到了它的优点,自然要支持它。所以本项目支持原始+Web Deploy两种部署方式。

    Web Deploy部署方式

    不推荐用IIS的Web 平台安装程序来下载Web Deploy,我们使用的Web Deploy 3.6版本,结果运行的时候是乱码状态。

    建议官网自己下载英文版,完整安装。

    项目编辑界面的部署流程中的第七个部署流程,选择部署方式为Web Deploy。并填写宿主属性Json。格式可以点击宿主属性前面的问号。

    注意:因为我们配合Jenkins使用,所以zip包是自己压缩的。一定要从根目录压缩,不能包含上一层文件夹。否则Web Deploy比对时会删除网站下所有文件!!!

    压缩命令格式:"C:Program Files (x86)7-Zip7z.exe" a -r $deployWebsiteName.zip C:ProjectInstanceWebsiteName*

    如你的网站目录为 C:ProjectInstanceWebsiteName ,则你的压缩文件解压后应该是可以直接解压到 C:ProjectInstanceWebsiteName,而不是 C:ProjectInstance,这里跟本项目支持的原始部署方式是有本质区别!

    namespace G.Infrastructure.Plugin.DeployHost.IIS.DeployModes
    {
        public class WebDeployDeployWorker : IDeployWorker
        {
            public void Deploy(string deployFilePackagePath, string jsonHostProperty)
            {
                var webDeployHostProperty = JsonConvert.DeserializeObject<WebDeployHostProperty>(jsonHostProperty);
                List<Tuple<string, string, string>> lstCommand = new List<Tuple<string, string, string>>();
    
                lstCommand.Add(new Tuple<string, string, string>(
                    @"C:Program FilesIISMicrosoft Web Deploy V3msdeploy.exe",
                    $@"-verb:sync -source:package=""{deployFilePackagePath}"" -dest:contentpath=""{webDeployHostProperty.WebsiteName}""",
                    "总更改数"));
    
                lstCommand.ForEach(command =>
                {
                    ProcessHelper.Run(command.Item1, command.Item2, command.Item3);
                });
            }
        }
    }

    Web Deploy部署调用的 msdeploy.exe,并通过package命令操作zip发布到网站名称相同的内容路径。

    原始部署方式

     此方式已不推荐使用,原理就是解压覆盖目录,并修改web.config文件触发最后修改,保证网站以最新状态启动。

    升级版本

    目前最新版本为0.0.0.2(Beta),升级执行脚本 GSQLScripts.0.0.2(Beta).sql

  • 相关阅读:
    正则表达式练习,持续更新中
    Jquery使用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
    SQL查找 删除重复数据只保留一条
    TreeView(C#)无限目录树代码片段
    ora-01440:要减小精度或标度,则要修改的列必须为空
    SQL查询和删除重复字段的内容
    CodeSmith(C#)简单示例及相关小知识
    MSSQL 自定义函数详解
    一些精妙的sql语句收集
    134.Gas Station
  • 原文地址:https://www.cnblogs.com/doddgu/p/g_doc_web_deploy.html
Copyright © 2020-2023  润新知