简介
WebDeploy 是微软开发的用于IIS管理的简单应用程序。WebDeploy通过简单的命令行脚本实现部署在IIS6上应用程序向IIS7应用服务器转移、IIS6应用服务器之间的同步,以及IIS7应用服务器之间的同步等。WebDeploy同步包含了IIS配置和部署的应用程序的同步。值得注意的是,在对IIS进行任何操作之前请进行备份。应用环境
- .Net Framework 2.0 SP1 或更高版本
- Web Deployment Tool 1.0
同步方式
- Push 推方式,同步本地服务器推送给远程服务器
- Pull 拉方式,同步远程服务器到目标服务器
- Independent Sync
- 手工同步,打包站点复制到远程服务器。
下载地址
http://www.iis.net/expand/WebDeploy安装WebDeploy
安装WebDeploy 会在服务器安装Remote Agent Service 服务,负责监听管理操作的HTTP请求。WebDeploy默认监听http://+/MSDEPLOYAGENTSERVICE/。%20%0d因为Web应用程序一般都是监听80因为Web应用程序一般都是监听80端口的,因此我们需要修改默认配置。创建bat文件并执行:msiexec /i <msi_filename> /passive ADDLOCAL=ALL LISTENURL=http://ServerName:9999/MSDEPLOYAGENTSERVICE/
-
msi_filename:安装程序名称
-
ServerName:对应机器名称或IP地址
- 9999:表示监听端口
测试安装
- 启动服务:Net start msdepsvc
- 在浏览器中输入监听地址例如http://ServerName:9999/MSDEPLOYAGENTSERVICE/
- 正确的页面响应结果为500错误
图:测试WebDeploy安装
步骤1 – 查看站点依赖
命令:msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1 查看IIS站点配置环境依赖,并在目标服务器进行相应的设置。例如:权限、依赖项等。- IIS6中使用metakey=lm/w3svc/1,其中“1”为网站标识。可以通过IIS管理器,点击站点查看。
- IIS7中使用apphostconfig="Default Web Site",为站点名称。
步骤2 – 查看IIS同步
命令:-
Push:在本地服务器执行
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1:9999 -whatif > msdeploysync.log
-
Pull:在远程服务器执行
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
若没有访问权限,需要提供用户名和密码,参数:userName,password。IIS同步更新信息写入msdeploysync.log日志文件中。目录地址:Program Files\IIS\Microsoft Web Deploy下。
步骤3-执行IIS同步
检查完成后,去除命令中的-whatif标签-
Push:在本地服务器执行
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1:9999 > msdeploysync.log
-
Pull:在远程服务器执行
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 > msdeploysync.log
其他
IIS配置备份
- 备份:iisback /backup /b <filename>
- 查看备份列表:iisback /list
- 恢复:iisback /resotre /b <filename>
IIS APP POOL
-
保存App Pool配置:
msdeploy -verb:sync -source:metakey=lm/w3svc/AppPools -dest:archivedir=c:\AppPoolConfig,encryptPassword=testIIS
-
还原App Pool配置:
msdeploy -verb:sync -source:archivedir=c:\AppPoolConfig,encryptPassword=testIIS -dest:metakey=lm/w3svc/AppPools
其他资源
- 使用 Iisback.vbs 备份 IIS 配置 http://technet.microsoft.com/zh-cn/library/cc775682(WS.10).aspx
- WebDeploy功能预览http://learn.iis.net/page.aspx/346/web-deploy/
- 合并IIS6http://blogs.msdn.com/rakkimk/archive/2010/03/02/msdeploy-can-i-use-it-to-migrate-my-iis6-to-another-iis6-oh-yes.aspx