同步 IIS 6.0 网站
作者:Faith A
本快速入门指南将指导你完成使用 Web 部署工具将 IIS 6.0 源计算机上的网站同步到 IIS 6.0 目标计算机的过程。 为此,可以将数据“推送”到远程目标,或从远程源“拉取”数据。 本指南将介绍这两种方法以及使用包文件的选项,这样你就无需安装 Web 部署代理服务(MsDepSvc 或“远程代理服务”)。
使用 Web 部署工具进行同步的方法有哪些?
- 推送(从本地源同步到远程目标)
- 拉取(从远程源同步到本地目标)
- 独立同步(从目标和源都位于远程的计算机启动同步)
- 手动本地同步(创建源的包文件并将其复制到目标,然后在本地运行该文件)
先决条件
本指南要求满足以下先决条件:
- .NET Framework 2.0 SP1 或更高版本
- Web 部署工具 1.1
注意:如果尚未安装 Web 部署工具,请参阅安装 Web 部署。
第 1 部分 - 查看站点的依赖项
通过运行以下命令来获取网站的依赖项:
msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1
查看依赖项的输出,并查找站点正在使用的任何脚本映射或已安装的组件。 例如,如果网站正在使用 Windows 身份验证,你将看到 <依赖项名称="WindowsAuthentication" />。
如果站点继承任何脚本映射,这些映射不会在依赖项中列出,你还应手动查看站点的脚本映射。
编译目标上所需的组件列表。
有关分析 getDependencies 输出的详细步骤,请参阅查看依赖项。
第 2 部分 - 配置目标(目标)
查看依赖项列表并将其安装在目标服务器上。 例如,假设你对网站使用了以下组件:
- ASP.NET
- Windows 身份验证
- 匿名身份验证
根据对依赖项的这个分析,在执行同步之前,你将在目标服务器上安装相应的组件。
第 3 部分 - 将网站同步到目标
始终备份目标服务器和源服务器。 即使只是进行测试,这样做也可使你轻松还原服务器的状态。
iisback /backup /b PreWebDeploy
在源或目标上安装远程服务,具体取决于是要从远程源“拉取”数据还是将数据“推送”到远程目标。
在服务器上启动该服务。
net start msdepsvc
运行以下命令,以验证在运行同步时会发生什么情况。 -whatif 标志不会显示每个更改,仅显示开放式视图,即如果一切成功,可能会发生什么更改(例如,它不会捕获无法写入目标的错误)。
推送到在源计算机上运行的远程目标(computerName 参数标识远程目标计算机)。
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
从在目标计算机上运行的远程源进行拉取(computerName 参数标识远程源计算机)。
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
验证输出后,再次运行不带 -whatif 标志的相同命令:
推送到在源计算机上运行的远程目标
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 > msdeploysync.log
从在目标计算机上运行的远程源拉取
msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 > msdeploysync.log
{可选 - 使用包文件将站点同步到目标}
如果不想使用远程服务,可以改用包(压缩文件)。
在目标服务器上运行以下命令,以创建网站源的包:
msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip
将包文件复制到目标服务器。
在目标服务器上运行以下命令,以验证在运行同步时会发生什么情况:
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
验证输出后,再次运行不带 whatif 标志的相同命令:
msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 > msdeploysync.log
现已完成站点同步。 若要进行验证,请测试一下是否可以浏览到目标服务器上的网站。 有关故障排除帮助,请参阅对 Web 部署进行故障排除。
总结
你已通过查看依赖项、配置目标 IIS 6.0 服务器以及使用 Web 部署代理服务或包文件,将网站从源 IIS 6.0 服务器同步到目标 IIS 6.0 服务器。