将网站从 IIS 6.0 迁移到 IIS 7 或更高版本

作者:Faith A

本快速指南帮助你使用 Web 部署工具将网站从 IIS 6.0 迁移到 IIS 7 或更高版本。

可以使用 Web 部署工具完成哪些类型的迁移?

  • 将 1 个或 1,000 个网站从 IIS 6.0 迁移到 IIS 7 或更高版本,包括所有配置设置、内容和证书
  • 迁移单个应用程序
  • 将整个服务器(所有网站、应用程序池等)从 IIS 6.0 迁移到 IIS 7 或更高版本
  • 将由站点、应用程序池、程序集、COM 对象、注册表项、内容等组成的自定义清单从 IIS 6.0 迁移到 IIS 7 或更高版本

先决条件

本指南要求满足以下先决条件:

  • .NET Framework 2.0 SP1 或更高版本
  • Web 部署工具 1.1

注意:如果尚未安装 Web 部署工具,请参阅安装并配置 Web 部署

第 1 部分 - 查看网站的依赖项

  1. 通过运行以下命令来获取网站的依赖项:

    msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1
    
  2. 查看依赖项的输出,并查找站点正在使用的任何脚本映射或已安装的组件。 例如,如果网站正在使用 Windows 身份验证,你将看到 <依赖项名称=“WindowsAuthentication” />。

  3. 如果站点继承任何脚本映射,这些映射将不会在依赖项中列出,还应手动查看站点的脚本映射。

  4. 编译目标上所需的组件列表。

有关分析 getDependencies 输出的详细步骤,请参阅查看依赖项

第 2 部分 - 配置目标

查看依赖项列表并将其安装在目标服务器上。

例如,假设你对网站使用了以下组件:

  • ASP.NET
  • Windows 身份验证
  • 匿名身份验证

根据对依赖项进行的这种分析,你将安装相应的组件和模块。

第 3 部分 – 使用包文件将站点迁移到目标

  1. 始终对目标服务器进行备份。 即使只是进行测试,这样做也可使你轻松还原服务器的状态。

    %windir%\system32\inetsrv\appcmd add backup "PreWebDeploy"
    
  2. 在源服务器上运行以下命令,以创建服务器的包(压缩)文件:

    msdeploy -verb:sync  -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip > WebDeployPackage.log
    
  3. 将包文件复制到目标服务器。

  4. 在目标服务器上运行以下命令,以验证在运行同步操作时会发生什么情况:

    msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > WebDeploySync.log
    
  5. 验证输出后,再次运行不带 whatif 标志的相同命令:

    msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 > WebDeploySync.log
    

{可选 - 使用 Web 部署代理服务将站点迁移到目标}

如果你不想使用包,可以使用 Web 部署代理服务(MsDepSvc,也称为“远程服务”)从 IIS 6.0 同步到 IIS 7 或更高版本。

  1. 根据你是要从远程源同步还是要同步到远程目标,在源或目标上安装远程服务。

  2. 在计算机上启动服务。

    net start msdepsvc
    
  3. 运行以下命令,以执行从本地源到远程目标的“推送”同步(请将 Server1 替换为远程计算机的名称)。 首先使用 whatif 标志运行该命令,然后在确认该命令的结果符合预期后,不使用该标志再次运行该命令。

    msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
    
  4. 或者,运行以下命令以执行从远程源到本地目标的“拉取”同步(请将 Server1 替换为远程计算机的名称)。 首先使用 whatif 标志运行该命令,然后在确认该命令的结果符合预期后,不使用该标志再次运行该命令。

    msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
    

现已完成站点迁移。 若要验证,请测试浏览到目标服务器上的网站。 有关故障排除帮助,请参阅对 Web 部署进行故障排除

总结

现在,你已通过查看依赖项、配置目标 IIS 服务器以及使用包文件或 Web 部署代理服务,将网站从源 IIS 6.0 服务器同步到目标 IIS 7.0 或更高版本的服务器。