高级企业 Web 部署

作者 :Jason Lee

本教程将演示如何执行许多企业部署方案中所需的或所需的各种任务。

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

这是一系列教程的一部分,这些教程基于名为 Fabrikam, Inc 的虚构公司的企业部署要求。本教程系列使用示例解决方案( Contact Manager 解决方案)来表示具有实际复杂程度的 Web 应用程序,包括 ASP.NET MVC 3 应用程序、Windows Communication Foundation (WCF) 服务和数据库项目。

这些教程的核心部署方法基于 了解生成过程中所述的拆分项目文件方法,其中生成过程由两个项目文件控制,一个项目文件包含适用于每个目标环境的生成说明,另一个包含特定于环境的生成和部署设置。 在生成时,特定于环境的项目文件将合并到与环境无关的项目文件中,以形成一组完整的生成说明。

方案概述

企业 Web 部署:方案概述中介绍了这些教程的高级方案。 建议在开始学习本教程之前查看本主题。

如何使用本教程

  • 本教程中的每个主题都是独立的,解决了企业部署方案中出现的特定挑战或问题。 无需按任何特定顺序完成这些主题。 但是,本教程介绍了一些高级任务。 因此,你应该熟悉 企业教程中的 Web 部署 所涵盖的概念和技术,以便从此内容中获得最大收益。
  • 本教程包括以下主题:
  • 执行“What If”部署。 在很多情况下,需要确定建议的部署对目标环境或任何现有内容的影响,然后再进行实际更改。 本主题介绍如何运行“what if”部署来生成日志文件和数据库更新脚本,就像将内容部署到目标环境一样,而无需实际进行任何更改。 分析这些资源有助于在实时部署之前发现任何潜在问题。
  • 为多个环境自定义数据库部署。 将数据库项目部署到多个目标时,通常需要为每个目标环境自定义部署属性。 例如,在测试环境中,通常会在每个部署上重新创建数据库,而在过渡或生产环境中,你更有可能进行增量更新以保留数据。 本主题介绍如何通过为每个目标环境创建特定于环境的部署配置 (.sqldeployment) 文件,将这些属性更改合并到部署逻辑中。
  • 将数据库角色成员身份部署到测试环境。 在每次部署上重新创建数据库时(例如,在持续集成 (CI) 生成并部署到测试环境)时,通常需要每次都配置数据库角色成员身份。 例如,通常需要向与 Web 应用程序关联的应用程序池标识授予权限。 本主题介绍如何通过将部署后 SQL 脚本添加到部署逻辑来自动执行此过程。
  • 将成员资格数据库部署到企业环境。 ASP.NET 成员身份数据库具有各种特征,可能会使部署过程复杂化。 例如,仅架构部署将使数据库处于非操作状态。 在大多数情况下,最好是直接在每个目标环境中创建成员资格数据库。 但是,如果必须部署成员资格数据库,本主题介绍一些可用于应对固有挑战的方法。
  • 从部署中排除文件和文件夹。 在某些情况下,需要根据特定目标环境定制 Web 包的内容。 例如,你可能希望在部署到测试环境时包含完整版本的 JavaScript 库,以支持客户端调试,但在部署到过渡或生产环境时使用库的缩小版本。 本主题介绍如何从包创建过程中排除特定文件和文件夹。
  • 使用 Web 部署使 Web 应用程序脱机。 将解决方案部署到过渡环境或生产环境时,通常需要在部署过程中使 Web 应用程序脱机。 本主题介绍如何在部署过程开始时将 App_offline.htm 文件添加到 Web 应用程序,并在部署过程结束时将其删除。 当App_offline.htm文件就位时,浏览到 Web 应用程序的任何用户都会自动重定向到App_offline.htm文件。
  • 从 MSBuild 运行Windows PowerShell脚本。 许多部署方案需要更复杂的部署后操作,例如将自定义事件源添加到注册表或在SQL Server实例之间配置复制。 这些操作通常通过Windows PowerShell脚本完成。 本主题介绍如何在生成和部署过程中从Microsoft 生成引擎 (MSBuild) 项目文件运行Windows PowerShell脚本。
  • 打包过程疑难解答。 Web 发布管道 (WPP) 定义了一个名为 EnablePackageProcessLoggingAndAssert 的 MSBuild 属性,可用于生成有关 Web 应用程序项目的打包过程的深入信息。 本主题介绍 属性的作用及其用法。

关键技术

本教程重点介绍如何使用这些产品和技术来支持自动生成和 Web 部署:

  • Visual Studio 2010 和 Team Foundation Server (TFS) 2010
  • MSBuild 和 TFS 团队生成
  • Internet Information Services (IIS) 7.5
  • IIS Web 部署工具 (Web 部署) 2.1
  • VSDBCMD.exe数据库部署实用工具

本系列中的其他教程

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

  • 在企业方案中部署 Web 应用程序。 此介绍性内容为教程系列提供了上下文背景。 本文介绍了教程方案,并说明了整个系列中所述的任务和演练如何适应更广泛的应用程序生命周期管理 (ALM) 过程。
  • 企业中的 Web 部署。 本教程提供 MSBuild 项目文件、WPP、Web 部署和其他相关技术的概念性介绍。 其中介绍了如何结合使用这些工具来管理复杂的部署过程。
  • 为 Web 部署配置服务器环境。 本教程介绍如何配置 Windows 服务器以支持各种部署方案,包括使用 Web 部署代理 服务 (远程代理) 或 Web 部署处理程序和远程数据库部署的远程 Web 包部署。 它提供有关为你自己的环境选择适当的部署方法的指导,并介绍了如何使用 Web 场框架 (WFF) 跨服务器场中的所有 Web 服务器复制已部署的 Web 应用程序。
  • 为 Web 部署配置 Team Foundation Server。 本教程介绍如何配置 TFS 以支持各种部署方案,包括作为 CI 过程的一部分的自动部署和手动触发的特定版本的部署。