ASP.NET 4 和 VS2010 Web 开发概述 7 - 使用 Visual Studio 2010 开发 Web 应用程序

当 ASP.NET 开发人员部署 Web 应用程序时,他们经常发现他们会遇到下列问题:

  • 部署到共享的宿主站点需要诸如 FTP 的技术,这可能会比较缓慢。另外,必须手工执行诸如运行 SQL 脚本的任务来配置数据库,以及必须更改 IIS 设置,例如配置一个虚拟目录文件夹作为应用程序。
  • 在企业级环境中,除了部署 Web 应用程序文件,管理员必须经常修改 ASP.NET 配置文件和 IIS 设置。数据库管理员必须运行一系列 SQL 脚本来让应用程序的数据库运行。这些安装很费人力,经常要消耗数小时来完成,还要小心记录。

Visual Studio 2010 包含了解决这些问题的技术,使得可以无缝地部署 Web 应用程序。其中一个技术是 IIS Web Deployment Tool(MsDeploy.exe)。

VS2010 中的 Web 部署特性包含以下主要方面:

  • Web 打包
  • Web.config 转换
  • 数据库部署
  • One-click 发布 Web 应用程序

下面是有关这些特性的细节。

1) Web 打包

VS2010 使用 MSDeploy 工具为应用程序创建压缩文件(.zip),这称为 Web 包(Web package)。包文件包含关于应用程序的元数据以及下面的内容:

  • IIS 设置,包括应用程序池设置,错误页面设置,等等。
  • 实际的 Web 内容,包括 Web 页面,用户控件,静态内容(图像和 HTML 文件),等等。
  • SQL Server 数据库模式和数据。
  • 安全证书,在GAC中安装的组件,注册表设置,等等。

Web 包可以拷贝到任何服务器上,然后使用 IIS 管理器(IIS Manager)手动安装。此外,对于自动部署,包还可以通过命令行命令使用部署 API 来安装。

VS2010 提供了内置的 MSBuild 任务和目标来创建 Web 包。更多信息,参见 MSDN 网站的 ASP.NET Web Application Project Deployement Overview,和 Vishal Joshi 的博客文章 10+20 reasons why you should create a Web Package

2) Web.config 转换

对于 Web 应用程序部署,VS2010 引入了 XML 文档转换(XDT),这个特性用于把 Web.config 文件从开发设置转换到生产设置。转换设置是在名为 web.debug.config、web.release.config 等文件中指定的。(这些文件的名称匹配 MSBuild 配置)转换文件只包含需要放到部署的 web.config 文件中的变化。通过使用简单的语法就可以指定变化。

下面的例子展示了 web.release.config 文件的一部分,可能为发布配置(release configuration)部署生产的。Replace 关键字表示在部署过程中 Web.config 文件中的 connectionString 节点会使用例子中列出的值代替。

< connectionStrings xdt:Transform ="Replace" > < add name ="BlogDB" connectionString ="connection string detail]" /> </ connectionStrings >

更多信息,参见 MSDN 网站上的 Web.config Transformation Syntax for Web Application Project Deployement 和 Vishal Joshi 的博客文章Web Deployment: Web.config Transformation

3) 数据库部署

VS2010 部署包可以包含 SQL Server 数据库的依赖。作为包定义的一部分,可以为源数据库提供连接连接字符串。当创建 Web 包时,VS2010 会为数据库模式和数据(可选)创建 SQL 脚本,然后把这些脚本添加到包中。也可以提供自定义 SQL 脚本并指定在服务器中运行的顺序。在部署期间,可以提供一个适合目标服务器的连接字符串,部署进程随即会使用这个连接字符串运行脚本创建数据库模式并添加数据。

另外,通过使用一键发布,当应用程序发布到远程共享宿主站点时可以配置部署来直接发布数据库。更多信息,参见 MSDN 网站上的 How to: Deploy a Database With a Web Application Project 和 Vishal Joshi 的博客文章Database Deployment with VS 2010

4) One-Click 发布 Web 应用程序

VS2010 还可以使用 IIS 远程管理服务来把 Web 应用程序发布到远程服务器。可以为宿主账户或测试服务器或临时服务器(staging server)创建一个发布描述(publish profile)。每个描述都安全地保存了适当的证书(credentials)。然后通过使用 Web 一键发布工具栏一键就可以部署到任何目标服务器了。使用 VS2010 还可以通过使用 MSBuild 命令行发布。这要配置团队生成环境在持续集成模型中包含发布。更多信息,参见 MSDN 网站上的How to: Deploy a Web Application Project Using One-Click Publish and Web Deploy 和 Vishal Joshi 的博客文章Web 1-Click Publish with VS 2010。To view video presentations about Web application deployment in Visual Studio 2010, seeVS 2010 for Web Developer Previews on Vishal Joshi's blog.

5) 资源

下面的网站提供了关于 ASP.NET 4 和 Visual Studio 2010 的额外信息: