企业中的 Web 部署

作者 :Jason Lee

本教程介绍如何在管理将企业级 Web 应用程序部署到开发、测试、过渡和生产环境时遇到的许多挑战。 本教程包含参考解决方案以及概念性内容和面向任务的内容,可指导你完成各种常见任务和过程。

有关这些教程的意大利语翻译,请访问 http://www.lucamorelli.it

企业部署挑战

组织在寻求管理复杂企业级解决方案的部署时,通常会遇到这些挑战:

  • 需要能够将项目部署到多个环境,例如开发人员或测试环境、过渡平台和生产服务器。 需要为每个环境使用不同的配置设置来部署解决方案。
  • 在单步生成和部署过程中,需要同时部署多个依赖项目。
  • 你需要能够从自动化过程推动部署。 例如,你希望在签入新代码时使用持续集成 (CI) 过程将 Web 应用程序部署到测试环境。
  • 你需要能够控制部署过程并从 Visual Studio 外部设置部署变量,因为开发人员不可能为每个目标环境拥有正确的配置设置或必要的凭据。
  • 需要部署基于架构的数据库项目,并在后续部署中保留现有数据。
  • 需要临时部署成员身份数据库,而无需部署用户帐户数据。 可能还需要在不丢失现有用户帐户数据的情况下更新已部署的成员资格数据库的架构。
  • 将内容部署到各种目标环境时,需要排除某些文件或文件夹。

方法概述

本教程与本系列中的其他教程一起使用此高级方法来解决上述挑战。

  • 使用自定义Microsoft 生成引擎 (MSBuild) 项目文件来控制整个生成和部署过程。
  • 这样,就可以在单个可编写脚本的操作中生成和部署解决方案中的每个项目。
  • 环境特定的设置是使用特定于环境的简单项目文件配置的。 与使用解决方案配置和发布配置文件来为不同环境配置部署的以 Visual Studio 为中心的方法不同,此方法允许从 Visual Studio 外部配置和管理部署过程。 这意味着开发人员不需要预先了解目标环境的连接字符串、服务终结点、服务器凭据和其他部署变量。
  • 作为 Team Foundation Server (TFS) 工作流的一部分,团队生成可以调用自定义项目文件。 这样,便可以为 CI 方案配置自动部署。

使用 Internet Information Services (IIS) Web 部署工具 (Web 部署) 打包和部署 Web 应用程序项目。

  • Web 部署提供了一个框架,可用于将 Web 应用程序内容打包并部署到目标 IIS Web 服务器,以及依赖项、配置设置、安全设置和任何其他要求。
  • 可以从自定义 MSBuild 项目文件中控制整个打包和部署过程。 还可以操作 Web 部署包随附的配置设置,例如连接字符串、服务终结点和 IIS 目标详细信息。
  • Web 部署与 Web 发布管道一起提供了许多扩展点,使你能够自定义部署。 例如,可以轻松地从 Web 部署包中排除不需要的文件和文件夹。

使用 VSDBCMD.exe 实用工具部署和更新数据库架构。

  • VSDBCMD 允许从生成 Visual Studio 数据库项目时生成的数据库架构文件 (.dbschema) 部署数据库。 相比之下,Web 部署中包含的数据库部署功能更适合从本地SQL Server实例部署现有数据库。
  • 与 Visual Studio 用于部署数据库项目的功能不同,VSDBCMD 允许将差异更新部署到现有目标数据库。 这使你可以在升级数据库架构时保留任何现有数据。
  • 可以从自定义 MSBuild 项目文件中执行 VSDBCMD 命令。

内容映射

本教程包括四个main领域的主题。

这些主题介绍了参考解决方案(Contact Manager 解决方案),并介绍了如何下载它并在本地计算机上对其进行配置:

这些主题介绍 MSBuild 项目文件,介绍如何创建和使用自定义项目文件,并逐步完成 Contact Manager 解决方案的部署过程:

这些主题介绍 Web 应用程序部署,包括生成和打包过程的工作原理、生成过程如何与 Web 发布管道集成、如何修改部署参数以及如何将 Web 包部署到目标环境:

关键技术

本教程中的主题主要使用这些技术来管理生成和部署:

  • Visual Studio 2010
  • MSBuild
  • IIS 7.5
  • Web Deploy 2.0
  • VSDBCMD.exe数据库部署实用工具

本系列中的其他教程

这是有关企业级 Web 部署的五个教程系列教程的一部分。 以下是本系列中的其他教程:

  • 在企业方案中部署 Web 应用程序。 此介绍性内容提供了教程系列的上下文背景。 本文介绍了教程方案,并说明了本系列中所述的任务和演练如何适应更广泛的应用程序生命周期管理 (ALM) 过程。
  • 为 Web 部署配置服务器环境。 本教程介绍如何配置 Windows 服务器以支持各种部署方案,包括使用 Web 部署代理服务 (远程代理) 或 Web 部署处理程序和远程数据库部署的远程 Web 包部署。 它提供有关为自己的环境选择适当的部署方法的指南,并介绍了如何使用 Web 场框架 (WFF) 跨服务器场中的所有 Web 服务器复制已部署的 Web 应用程序。
  • 为 Web 部署配置 Team Foundation Server。 本教程介绍如何配置 TFS 以支持各种部署方案,包括自动部署作为 CI 过程的一部分,以及手动触发的特定版本的部署。
  • 高级企业 Web 部署。 本教程介绍如何完成各种更高级的部署任务,例如为多个环境自定义数据库部署、从部署中排除文件和文件夹,以及使 Web 应用程序在部署过程中脱机。