使用 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 安装工具
下载 Web 部署工具。
运行 Windows® 安装程序文件安装工具。
选择自定义安装。
单击远程服务节点以安装远程服务。
完成安装。
运行以下命令手动启动服务:
net start msdepsvc
确保防火墙的 80 端口是打开的。
使用自定义远程服务 URL 安装工具
下载 Web 部署工具。
在 Windows Server® 2008 上打开管理命令提示符,或在 Windows Server® 2003 上打开命令提示符。
转到设置文件所在的目录。
运行如下命令(自定义端口和 URL 规范):
msiexec /i <msi_filename> /passive ADDLOCAL=ALL LISTENURL=http://+:8080/MSDEPLOY2/
运行以下命令手动启动服务:
net start msdepsvc
确保所选的防火墙端口是打开的。
该工具将被安装到 %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 部署工具”。