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

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-Zip\7z.exe" a -r $deploy\WebsiteName.zip C:\ProjectInstance\WebsiteName\*

如你的网站目录为 C:\ProjectInstance\WebsiteName ,则你的压缩文件解压后应该是可以直接解压到 C:\ProjectInstance\WebsiteName,而不是 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 Files\IIS\Microsoft Web Deploy V3\msdeploy.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),升级执行脚本 G\SQLScripts\0.0.0.2(Beta).sql

时间: 2024-12-28 17:46:59

【G】开源的分布式部署解决方案文档 - Web Deploy的相关文章

【G】开源的分布式部署解决方案文档 - 手动安装

G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片看大图) 必备工具 IDE:VS2015+ 运行环境: .Net Framework 4.6.1(已测可降4.5,其余没测) 宿主:IIS 下载源码 源码地址 http://git.oschina.net/doddgu/G/ ps:强烈希望顺手点下 star.watch.fork VS克隆源码 编译

【G】开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的

G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 分析目前项目结构 眼前出现这么一坨坨的文件夹,相信很多人已经看不下去了.是的,首先就是要把它给做掉. 按照这个项目文件夹的命名意图,大概可以划分如下: 1.Business:业务代码 2.Data:数据访问 3.Helpers:辅助类(通用类库之类的) 4.Models:各种模型(包括视图模型) 5.theme:皮肤

【G】开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析

G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 [G]开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析 抱歉 首先我先说声抱歉,因为上一篇结尾预告第三篇本该是“部署项目管理”,那为什么变成本篇呢? 请容我解释一下,在预告篇到现在为止,经常会有人问我这个项目到底是干什么的.或许之前写的比较粗糙.那我相信目前定稿后的功能概览图应该会给大家一个比较清晰的认识.

Rhel6-hadoop分布式部署配置文档

理论基础: Hadoop 分布式文件系统架构 HDFS 负责大数据存储 MapReduce 负责大数据计算 namenode  master守护进程 datanode  slaves上负责存储的进程 secondarynamenode   master上提供周期检查和清理任务的进程 jobtracker   master上负责调度datanode上工作的进程 tasktracker  slaves上负责计算的进程 Hadoop 主从节点分解: 主节点包括名称节点.从属名称节点和jobtracke

_00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_00024 妳那伊抹微笑_云计算之ClouderaManager以及CHD5.1.0集群部署安装文档V1.0 个性签名:世界上最遥远的距离不是天涯,也不是海角.而是我站在妳的面前.妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahou

Redis的部署使用文档

Redis的部署使用文档 简述: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符 串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富 的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区 别的是redis会周期性的把更新的数据写入磁

_00024 妳那伊抹微笑_云计算之ClouderaManager以及CHD5.1.0集群部署安装文档V1.0

博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 博文标题:_00024 妳那伊抹微笑_云计算之ClouderaManager以及CHD5.1.0集群部署安装文档V1.0 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+Spark ... 云计算技术 转载声明:可以转载, 但必须以超链接形式标明文章

ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)

ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26040)简介 如果只是错误ORA-01578,而没有伴随ORA-26040,那么这个坏块是由其它的原因引起的坏块,可以尝试使用RMAN的BMR(Block Media Recovery)修复. 如果数据段(表段.索引段)被定义为NOLOGGING属性,那么当NOLOGGING加APPEND.UNRE

C#开源组件DocX处理Word文档基本操作(二)

上一篇 C#开源组件DocX处理Word文档基本操作(一) 介绍了DocX的段落.表格及图片的处理,本篇介绍页眉页脚的处理. 示例代码所用DocX版本为:1.3.0.0.关于版本的情况,请参见上篇. 代码如下: 第一部分:基本的页眉页脚处理(包括图片插入) private void DocXSetHeaderFooter(DocX document) { document.AddHeaders(); //增加页眉 document.AddFooters(); //增加页脚 document.Di