使用 Web 部署工具

作者:Tali Smith

介绍

Microsoft Web 部署工具简化了 Internet Information Services (IIS) Web 服务器、Web 应用程序和网站的迁移、管理和部署。 管理员可以通过命令行脚本运行 Web 部署工具,同步 IIS 6.0 和 IIS 7 以及更高版本的服务器或将 IIS 6.0 服务器迁移到 IIS 7 或更高版本。 管理员和委托用户还可以通过 Web 部署工具使用 IIS 管理器将 Microsoft® ASP.NET 和 PHP 应用程序部署到 IIS 7 及更高版本的服务器。

使用 Web 部署工具可以执行以下操作:

  • 在 IIS 6.0 和 IIS 7 及更高版本之间迁移 Web 应用程序 - 通过在过程开始前确定不兼容性和预览建议的更改,简化 IIS 6.0 到 IIS 7 及更高版本的迁移规划。 通过提前了解任何潜在问题,你即可采取正确的措施并简化迁移。
  • 同步服务器场 - 利用 Web 部署工具,通过检测源与目标内容之间的差异并仅传输那些需要同步的更改,可以在 IIS 服务器场中高效同步站点、应用程序或服务器。 该工具通过自动确定要同步的特定站点的配置、内容和证书,简化同步过程。 除了默认行为之外,你还可以选择为同步指定其他提供程序,包括数据库、组件对象模型 (COM) 对象、全局程序集缓存 (GAC) 程序集和注册表设置。
  • 打包、存档和部署 Web 应用程序 - 可以使用 Web 部署工具打包已安装的 Web 应用程序的配置和内容(包括数据库),并使用包进行存储或重新部署。 可以使用 IIS 管理器部署这些包,而且无需管理员特权。 该工具集成了 Microsoft® Visual Studio® 2010,以帮助开发人员简化将 Web 应用程序部署到 Web 服务器的工作。

下载并安装 Web 部署工具

Web 部署工具是一个托管代码框架,包括公共应用程序编程接口 (API) 和底层引擎。 (这是顶级节点,无法删除。)

  • IIS 管理器 UI 模块 - 用户使用 UI 模块可以执行部分部署任务,主要是打包或部署网站或应用程序。 此模块需要安装 IIS 7 或更高版本,或 IIS 远程管理器。
  • 远程代理服务 - 基于 HTTP/HTTPS 且仅限管理员的服务,服务器管理员通过该服务可以连接并执行远程操作。
  • IIS 部署处理程序 - 集成了 Web 管理服务 (WMSvc) 的处理程序,非管理员或管理员通过它可以执行远程操作。 此处理程序要求使用 WMSvc 安装 IIS。

选择安装选项

安装 Web 部署工具之前,确定是使用远程服务在两台服务器之间执行实时操作,还是使用脱机模式。

  • 远程服务默认不启动,设置为“手动启动”。 只需在操作期间运行,不使用时可以将其停止。
  • 脱机模式是在没有该服务的情况下直接安装工具。 它要求创建站点或服务器的本地副本,然后手动将此“快照”或存档复制到目标。

注意,只需在源或目标上安装远程服务。 例如,要将所有内容从服务器“推送”到客户端,可以在所有客户端计算机上安装远程服务,确保可以从源推送内容。 此外,可以让每个客户端从服务器“拉取”,仅在源上安装远程服务。

使用默认的远程服务 URL 安装工具

  1. 下载 Web 部署工具

  2. 运行 Windows® 安装程序文件安装工具。

  3. 选择自定义安装。

  4. 单击远程服务节点以安装远程服务。

  5. 完成安装。

  6. 运行以下命令手动启动服务:

    net start msdepsvc
    
  7. 确保防火墙的 80 端口是打开的。

使用自定义远程服务 URL 安装工具

  1. 下载 Web 部署工具

  2. 在 Windows Server® 2008 上打开管理命令提示符,或在 Windows Server® 2003 上打开命令提示符。

  3. 转到设置文件所在的目录。

  4. 运行如下命令(自定义端口和 URL 规范):

    msiexec /i <msi_filename> /passive ADDLOCAL=ALL LISTENURL=http://+:8080/MSDEPLOY2/
    
  5. 运行以下命令手动启动服务:

    net start msdepsvc
    
  6. 确保所选的防火墙端口是打开的。

该工具将被安装到 %programfiles%\IIS\Microsoft Web Deploy。 这无法更改。

安装后启动远程服务

默认情况下,远程服务侦听 http://+/msdeployagentservice/,如果执行的是自定义安装,则侦听指定的 URL。

现在应启动远程服务。 方式如下:转到“启动”>“运行”,然后输入 services.msc“开始。 该服务被列为 Microsoft Web 部署代理服务。

服务启动默认为“手动”;可以在 Services.msc 中将启动设置为“自动”。 还可以使用命令行工具 Sc.exe 将启动设置为“自动”。

知识库文章提供了有关 Sc.exe 的更多信息。

为 Web 场使用 Web 部署工具

Web 部署工具可用于将新应用程序部署到 Web 场,或在 Web 场服务器之间同步更改。 对于场中的服务器列表,Web 部署工具目前不支持集中 UI 或配置存储(例如一次同步多台计算机),但你只需存储此服务器列表,并对每个服务器执行同步操作。 可以使用 Microsoft® System Center 或其他调度机制轻松地调度这些同步操作。 可同步的资源包括网站或应用程序、内容文件夹和文件、数据库、注册表项、GAC 中的程序集等。 你还可以生成自定义“提供程序”,了解不支持的其他类型的资源。 有关详细信息,请参阅为 Web 场使用 Web 部署工具

使用 Web 部署工具打包和部署应用程序

有关使用 Web 部署工具打包和部署应用程序的信息,请参阅以下文章。

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

可以使用 Web 部署工具进行以下操作:

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

有关说明,请参阅从 IIS 6.0 迁移到 IIS 7 及更高版本

同步 Web 服务器

可以使用 Web 部署工具在 IIS 6.0 或 IIS 7 或更高版本上将网站从源同步到目标。 为此,可以将数据“推送”到远程目标,或从远程源“拉取”数据。 你也可以使用包(压缩文件)来避免安装远程服务。 有关详细信息,请参阅以下文章:

Web 部署工具的功能

以下信息是 Web 部署工具功能的广泛列表:

  • 与 IIS 管理器和 Visual Studio 2010 界面的无缝集成,旨在创建包并将其部署到本地和远程计算机上。

  • Web 应用程序打包:

    • 可以打包 Web 应用程序或整个站点,包括相关的数据库。
    • 可以打包访问控制列表 (ACL)、COM、GAC 和注册表设置。
    • 支持将活动服务器和压缩包作为源或目标。
  • Web 应用程序部署:

    • 部署 Web 应用程序不需要管理权限。
    • 可以添加功能强大的参数,以在部署文件时更改文件中的文本(例如,在从质量保证环境部署到过渡环境时提示替换连接字符串)。
    • 与 IIS Web 管理服务 (WMSvc) 的集成,旨在让非管理员进行远程部署。
    • 服务器管理员可对可执行的操作进行精细控制,并且可以将任务委托给非管理员。
  • Web 服务器迁移和同步:

    • 可以同步或迁移整个 Web 服务器、Web 站点或应用程序。
    • 仅同步已更改的数据。
    • 可以在同步期间检测缺少的依赖项。
    • 在同步网站时自动收集内容、IIS 配置、安全套接字层 (SSL) 证书和 ASP.NET 配置。
  • 除了使用 IIS 管理器和 Visual Studio 10 之外,还可以使用命令行、Windows PowerShell™ cmdlet 或公共 API 执行任务。

注意

本文基于以下材料:Faith Allington 于 2009 年 9 月 1 日发表的“安装 Web 部署工具”