Web 部署简介
作者:Harsh Mittal
什么是 Web 部署?
Web 部署是可扩展的客户端-服务器工具,用于将内容和配置同步到 IIS。 Web 部署主要用于两种方案:
- 开发人员使用它将编译好的 Web 应用程序(ASP.Net、PHP 等)从开发人员工具(Visual Studio、WebMatrix 等)同步(又称“发布”)到 IIS
- IT 专业人员使用它将网站和应用程序从运行较旧版本 IIS(如 IIS6)的操作系统迁移到运行较新版本 IIS(如 IIS 7.5)的操作系统。
Web 部署与 FTP 相比如何?
Web 部署经常与 FTP、XCOPY 或 RoboCopy 等技术相对比。 尽管这些技术很有用,但 Web 部署提供了多个好处。
以下是 Web 部署与 FTP 的对比:
- Web 部署比 FTP 更快。 Web 部署不为每个操作发出不同的命令。 相反,它在同步开始时进行对比,并且只传输更改。
- Web 部署是安全的。 Web 部署支持通过 HTTPS 进行传输。 请注意,FTP 的变体(如 SFTP 和 FTPS)也是安全的。
- Web 部署可以在目标文件和目录上设置安全描述符 (ACL)。 例如,可以使用 Web 部署为 Windows 用户授予在部署期间对应用程序的“Downloads”文件夹的特定访问权限。
- Web 部署可以发布数据库。 Web 部署具有立即可用的支持,可用于编写 SQL Server、MySQL Server、Sqlite 和 SQL Server Compact 数据库的脚本,以及在同步过程中应用生成的脚本。如果应用需要数据库才能正常运行,则这将非常有用。
- Web 部署可以在部署期间应用转换。 可以使用 Web 部署在同步期间更改连接字符串或应用程序设置。Web 部署支持大量转换,包括转换 IIS 设置。
- Web 部署集成了 Visual Studio 2010 和 WebMatrix。
- Web 部署是可扩展的。 Web 部署有一个丰富的、可公开访问的可扩展性模型,使用它可以新建方案。
工作原理
大多数 Web 部署操作都是围绕源和目标之间的同步操作建模的。 同步操作由 Web 部署框架使用一个或多个 Web 部署提供程序编排,如下所述。
框架
Web 部署包含一个框架,该框架管理连接状态并编排源与目标之间的同步。 例如,框架负责跳过同步某些类型的内容、运行规则和转换文件。
可以通过公共 API 以及命令行可执行文件 msdeploy.exe 访问该框架。
提供程序
Web 部署可以通过使用其插入框架的内置提供程序在两个位置之间同步任何类型的数据。 提供程序知道如何在两个源之间同步特定类型的数据,或检索有关数据源的有用信息。
例如,Web 部署有一个适用于 SQL 数据库 (dbFullSql) 的提供程序,它可以将整个 SQL Server 数据库同步到另一个服务器。 其他内置提供程序同步 MySQL 数据库 (dbMySql)、IIS 7 配置 (appHostConfig)、GAC 程序集 (gacAssembly) 或 COM 对象 (comObject32/comObject64)。 可以在 TechNet 上查找到更完整的清单。
提供程序模型是可扩展的,如果需要同步自定义数据,开发人员可以使用该模型为 Web 部署编写自己的提供程序。
揭秘
源通过 Web 部署发起操作时,Web 部署框架会建立与目标之间的连接。 Web 部署支持两个连接端点,使用哪个端点取决于多个因素:
- 如果目标是运行 IIS6 的 Windows Server 2003,则可以连接到其 Web 部署代理服务(又称为远程代理服务)终结点。 远程代理服务为此连接提供了安全性,并且只有管理员用户可对其进行访问。
- 如果目标是运行 IIS7 的 Windows Server 2008 或运行 IIS7.5 的 Windows Server 2008 R2,并且要使用非管理员凭据建立连接,则必须连接到 Web 管理服务终结点。 Web 部署在 Web 管理服务中安装处理程序,该处理程序允许非管理员在对 Web 管理服务进行身份验证和授权后进行部署。
- 如果目标是运行 IIS7 的 Windows Server 2008 或运行 IIS7.5 的 Windows Server 2008 R2,并且要使用管理员凭据建立连接,则可以连接到任一终结点。
了解更多信息
请参阅 iis.net 上的演练教程和技术文档。