在学习和工做的过程当中,发现不少同事、朋友,在作.NET Web应用发布的时候,依然在走 生成-复制到服务器 这样的方式,稍微高级一点的,就是先发布到本地,再上传到服务器html
这种方式不只效率低下,并且不易进行版本控制,程序稍微复杂一些,加上团队协做,发布就会出现各类不可预料的版本问题。web
正好这两天在玩Azure和Windows Server 2016,详见《【初码干货】【Azure系列】一、再次感觉Azure,体验Windows Server 2016并部署BlogEngine.NET》,而我在实际使用过程当中,也遇到过很多关于Web Deploy的坑,因此在这里,将WebDeploy的完整配置和使用方法从新梳理一遍服务器
特别值得注意的是,虽然以Windows Server 2016做为演示,但和在Windows Server 2012 R2里面的步骤是彻底一致!app
下面是完整的步骤asp.net
一、在IIS里面点击获取新的Web平台组件学习
二、下载Web平台组件并安装测试
三、在其中搜索Web Deploy,找到3.5版本,并安装.net
四、继续搜索Web Deploy 3.6版本,并安装3d
安装好以后,从新进入IIS,发现新增了一些功能版本控制
五、进入计算机管理,修改两个用户(WDeployAdmin和WDeployConfigWriter)的密码属性,包括设置永不过时以及设置一个固定密码
六、回到IIS中,对Web Deploy的管理服务委派中的部分提供程序的用户进行从新配置(使用刚才设置的密码)
这里只列举一个 backupSettings的配置,其余的3个你们依葫芦画瓢就能够了
七、添加一个IIS管理用户
七、配置防火墙
咱们能够看到,WebDeploy服务的默认服务端口是8172
所以要在入口规则中添加一个8172端口的入站规则
默认WebDeploy程序会添加防火墙例外处理,可是若是仍是不行,则须要手工添加一下的。
好了,到目前为止,Web Deploy的配置,就大功告成了,必定要重启服务器
下面还须要进行测试(接着看,不要走,测试里面有一步权限配置很是重要)
一、新建一个IIS站点
特别值得注意的是,这个IIS站点所在的目录的文件夹,必定要有Local Service权限!不然在发布的是否,会提示权限不正确!
二、在站点的IIS管理器权限里面,添加刚才新增IIS管理用户
这里有个指的注意的,IIS支持子站点的详细权限配置,若有有子应用,能够进行相似的配置
三、在Visual Studio 2015里面新建一个asp.net web applicaiton空项目,进行测试
新建一个网页
四、测试发布
这里的站点名称,就是IIS的站点名称,若是是子站点,就填写
WebDeploy测试/子站点
在发布以前,最好预览一下,这是一个很好的发布习惯!
最后点发布,会出现记录
好了,看一下效果 http://webdeploytest.printhelloworld.com/
转载请注明出处,欢迎邮件交流:zhangrou@printhelloworld.com,或者加QQ群:11444444