ASP.NET站点Web部署(一键发布的实现)
在开发过程中经常需要发布到开发环境、测试环境或者预发布环境上给其他同事进行测试验证效果等等,每次发布都要备份,拷贝,修改配置文件等等重复操作非常的麻烦,效率大打折扣,而web部署提供了这样的解决方案:在服务端安装Web Deploy服务,由Web Deploy服务完成备份发布等操作,今天小编就以图文并茂的方式来完整介绍这一安装部署的过程,具体有以下两大部分:
第一部分:Web Deploy服务的安装与设置
一、安装IIS管理服务:打开服务器管理器 - 添加角色和功能 勾选web服务器(IIS)的管理服务选项 如图(一),然后点击下一步完成安装
图一
二、安装Web Deploy V3.6
下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=43717
下载完之后直接安装,我选择的是完全安装选项
v3.5的下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=39277
三、启动Web Deploy服务
Web Deploy服务安装完毕之后一般默认情况下是没有启动的,我遇到的情况就是这样,在更改配置之前必须向将Web Deploy服务停止,如图二:
图二
更改服务配置的操作步骤: 打开IIS主页 - 管理服务 - 更改配置:启动远程连接选项勾上 如图(三)
图三
四、开通防火墙入站规则的相应端口,如果在上一个步骤中你没有更改端口,那么默认就是8172,如图四
图四
图五
六、设置目标站点的IIS管理器权限,如图六
图六
七、为目标站点的根目录文件夹添加LOCAL SERVICE用户,并设为完全控制的权限,如图七
图七
八、开启自动备份
默认情况下deploy是没有打开自动备份的,那么开启自动备份的方法如下:
1、打开windows的PowerShell 执行下面的命令转到“%programfiles%\IIS\Microsoft Web Deploy V3\scripts”目录
cd "C:\Program Files\IIS\Microsoft Web Deploy V3\scripts"
2、检查当前PowerShell的执行策略,如果是Restricted 那么需要将它改为 RemoteSigned
Get-Executionpolicy
//如果输出为:Restricted 那么执行下面的命令进行修改执行策略
Set-Executionpolicy RemoteSigned
注意:上面命令会询问你是否要更改执行策略,你根据提示输入Y按回车
关于PowerShell的其他设置可以参照官方的文档:https://technet.microsoft.com/zh-CN/library/hh847748.aspx
3、执行下面的命令加载脚本:
. .\BackupScripts.ps1
注意:如果加载成功,将没有任何反应,如果加载失败将会有红色的提示语句;
4、通过TurnOn-Backups命令允许管理员开启或关闭站点的自动备份功能,这相当于一个总闸开关。
允许配置所有的备份功能
TurnOn-Backups -On $true
禁用配置所有的备份功能
TurnOn-Backups -On $false
5、打开所有站点或者指定站点的自动备份功能
# 打开所有站点的备份功能
Configure-Backups -Enabled $true # 打开foo站点的备份功能
Configure-Backups -SiteName "foo" -Enabled $true
自动备份设置已经完成,关于跟多的自动备份设置请参照官方文档:https://www.iis.net/learn/publish/using-web-deploy/web-deploy-automatic-backups
到此为止在服务端上的操作就已经完成了,接下来以VS2015为例介绍在客户端上的操作。
第二部分、发布站点
一、在发布之前我们先来添加一个配置转换,由于本地的配置和服务器上的配置一般有所差异,所以添加一个配置转换解决差异的问题,在添加配置转换之前要先添加一个对应的解决方案配置,添加的方法如图八所示:
图八
二、解决方案配置一般按照发布的目标环境命名,这样比较清晰是针对哪个服务器环境的,然后在解决方案的站点根目录下右键web.config文件,在弹出来的上下文菜单中添加配置转换,如图九:
图九
最后的到多出了一个web.测试环境.config的文件如图十:
图十
三、在转换配置文件中添加有差异的配置节点,一般来说数据库连接,每个服务器环境都是不一样的,这里就以connectionStrings这个节点为例子简单说明一下,有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889,如下图十一
图十一
添加完成之后,您可以右键web.测试环境.config文件在弹出的上下文菜单中预览转换后的结果,如图十二
图十二
四、发布和发布配置,右键web项目在上下文菜单中选择发布菜单,弹出的界面中选择自定义,我们这里还是输入测试环境,如图十三
图十三
点击确定后会转到选择发布方法的界面,这里选择 Web Deploy,如图十四
图十四
这里面有几个参数需要说明一下的:
1、服务器:测试环境的服务器IP地址,在这里就是本文的第一部分介绍的服务器IP地址了
2、站点名称:发布的目标站点,这里就是本文第一部分介绍的在服务端创建的DeployTest站点
3、用户名:目标站点允许的用户名,这里就是本文第一部分介绍DeployTest站点添加的Test用户
4、密码:用户名的密码
5、目标URL:网站的主页,这个选项是可选的
6、验证连接:这个按钮是用来验证你填写的参数是否正确,如果一切都正常,那么点击下一页,进入到配置选择页,在这个操作界面要记得选择对应的配置,那么我们选择测试环境,如图十五
图十五
来到最后一个页面就是预览了,当然你可以直接点击发布,也可以点击预览,选择性地发布,如图十六
图十六
点击发布后系统开始连接服务器将对应的站点进行备份,然后再覆盖站点,到这里整个流程就已经完成了,谢谢您的关注和阅读!
ASP.NET站点Web部署(一键发布的实现)的更多相关文章
- NET站点Web部署
NET站点Web部署(一键发布的实现) 在开发过程中经常需要发布到开发环境.测试环境或者预发布环境上给其他同事进行测试验证效果等等,每次发布都要备份,拷贝,修改配置文件等等重复操作非常的麻烦,效率大打 ...
- ASP.NET Core Web应用在发布时选择是否对视图进行编译
原文:ASP.NET Core Web应用在发布时选择是否对视图进行编译 在我们发布ASP.NET Core Web应用程序时,选择以文件形式发布,发布方法选择文件系统 默认情况下,会把Views的视 ...
- netcore开发windows普通服务(非Web)并一键发布到服务器
如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run ...
- 用于 Visual Studio 和 ASP.NET 的 Web 应用程序项目部署常见问题
https://msdn.microsoft.com/zh-cn/library/ee942158(v=vs.110).aspx#can_i_exclude_specific_files_or_fol ...
- 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程
最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...
- asp.net core web 项目附加进程调试
之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...
- tfs 2013 利用 web deploy 完成asp.net站点自动发布
课题起因: 目前我们团队使用visual studio 2013开发asp.net项目, 使用tfs2013 做源码管理, 每天早上手动发布项目文件包,复制到测试服务器的站点文件夹下覆盖老文件,用此方 ...
- List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac
List多个字段标识过滤 class Program{ public static void Main(string[] args) { List<T> list = new List& ...
- 一键发布ASP.NET Web安装程序
转载自:http://www.cnblogs.com/nangong/p/Web.html 前言:最近公司有个Web要发布,但是以前都是由实施到甲方去发布,配置,这几天有点闲,同事让我搞 ...
随机推荐
- 周总结<7>
这周和3位朋友一起完成了系运动会的视频,感受很多,也学到很多. 周次 学习时间 新编代码行数 博客量 学到知识点 14 20 100 1 Html页面设计:虚拟机:(C语言)最小生成树与最短路径 Ht ...
- haproxy调度算法
调度算法详解 用balance指令指明调度算法, 例如:balance roundrobin 1:roundrobin :动态轮询算法,基于后端服务器的总权重做轮询,后端的服务器数量限制在4095 ...
- 转 maven3常用命令、java项目搭建、web项目搭建详细图解
转自地址:http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常 ...
- 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
图文详解 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目. 2.设置 GAV 坐标 3. ...
- 使用cookie保存用户登录信息
写入Cookie HttpCookie _cookie = new HttpCookie("User"); _cookie.Values.Add("UserName&qu ...
- 【前端】JS截取字符串常用方法详细整理
函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //arr ...
- 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中
一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加 ...
- 【题解】APIO2014回文串
哇哦~想不到我有生之年竟然能够做出字符串的题目ヾ(✿゚▽゚)ノ虽然这题比较裸但依然灰常开心! 首先有一个棒棒的性质:本质不同的回文串最多有 O(n) 个.首先 manacher 把它们都找出来,然后问 ...
- [TJOI2015]线性代数 网络流
题面 题面 题解 先化一波式子: \[D = (A \cdot B - C)A^T \] \[ = \sum_{i = 1}^{n}H_{1i}\cdot A^T_{i1}\] \[H_{1i} = ...
- BZOJ1187:[HNOI2007]神奇游乐园——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1187 Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现 ...