使用 Visual Studio 使用SQL Server Compact部署 ASP.NET Web 应用程序:简介 - 第 1 部分,共 12 个

作者 :Tom Dykstra

下载初学者项目

本系列教程介绍如何使用 Visual Studio 2012 RC 或 Visual Studio Express 2012 RC for Web) 包含SQL Server Compact数据库的 ASP.NET Web 应用程序项目部署 (发布。 如果安装 Web 发布更新,也可以使用 Visual Studio 2010。

有关演示 Visual Studio 2012 RC 版本后引入的部署功能的教程,演示如何部署除 SQL Server Compact 以外的SQL Server版本,并演示如何部署到Azure 应用服务 Web 应用,请参阅使用 Visual Studio ASP.NET Web 部署

这些教程指导你先部署到本地开发计算机上的 IIS 进行测试,然后再部署到第三方托管提供程序。 要部署的应用程序使用应用程序数据库和 ASP.NET 成员身份数据库。 首先使用 SQL Server Compact 并部署到 SQL Server Compact,稍后的教程将介绍如何部署数据库更改以及如何迁移到 SQL Server。

本教程假定你知道如何在 Visual Studio 中使用 ASP.NET。 如果没有,最好从基本 ASP.NET Web Forms教程基本 ASP.NET MVC 教程开始。

如果有与本教程不直接相关的问题,可以发布到 ASP.NET 部署论坛

概述

这些教程指导你先部署到本地开发计算机上的 IIS 进行测试,然后再部署到第三方托管提供程序。 要部署的应用程序使用应用程序数据库和 ASP.NET 成员身份数据库。 首先使用 SQL Server Compact 并部署到 SQL Server Compact,稍后的教程将介绍如何部署数据库更改以及如何迁移到 SQL Server。

教程数量(共 11 个)加上故障排除页面,可能会使部署过程看起来令人望而生畏。 事实上,部署网站的基本过程占教程集的相对较少部分。 但是,在实际情况下,通常需要有关部署的一些小但重要的额外方面的信息,例如,在目标服务器上设置文件夹权限。 我们在教程中包含了许多其他技术,希望教程不会遗漏可能妨碍你成功部署真实应用程序的信息。

教程旨在按顺序运行,每个部分都基于上一部分进行构建。 但是,你可以跳过与你的情况无关的部分。 (跳过部件可能需要在后面的 tutorials 中调整过程。)

目标受众

本教程面向在小型组织或其他环境中工作的 ASP.NET 开发人员::

  • 不使用 (自动生成和部署) 的持续集成过程。
  • 生产环境是第三方托管提供程序。
  • 一个人通常担任多个角色, (同一个人开发、测试和部署) 。

在企业环境中,更典型的是实现持续集成过程,而生产环境通常由公司自己的服务器托管。 不同的人通常也会执行不同的角色。 有关企业部署的信息,请参阅 在企业方案中部署 Web 应用程序

各种规模的组织还可以将 Web 应用程序部署到 Azure,这些教程中显示的大多数过程也适用于 Azure 应用 Services Web 应用。 有关 Azure 的简介,请参阅 https://azure.microsoft.com

教程中显示的托管提供程序

本教程将引导你完成在托管公司设置帐户并将应用程序部署到该托管提供商的过程。 选择了特定的托管公司,以便教程可以演示部署到实时网站的完整体验。 每个托管公司提供不同的功能,部署到其服务器的体验有所不同:但是,本教程中所述的过程是整个流程的典型过程。

本教程使用的托管提供程序 Cytanium.com 是可用的许多提供程序之一,在本教程中使用它不构成认可或建议。

部署网站项目

Contoso University 是一个 Visual Studio Web 应用程序项目。 本教程中演示的大多数部署方法和工具不适用于 网站项目。 有关如何部署网站项目的信息,请参阅 ASP.NET 部署内容映射

部署 ASP.NET MVC 项目

在本教程中,你将部署一个 ASP.NET Web Forms项目,但你学到的一切操作也适用于 ASP.NET MVC。 Visual Studio MVC 项目只是 Web 应用程序项目的另一种形式。 唯一的区别是,如果要部署到不支持 ASP.NET MVC 或目标版本的托管提供程序,则必须确保在项目中安装了相应的 MVC 3MVC 4 () NuGet 包。

编程语言

示例应用程序使用 C#,但教程不需要 C# 知识,并且教程显示的部署技术并非特定于语言。

本教程期间的故障排除

当部署期间发生错误,或者部署的站点未正确运行时,错误消息并不总是提供解决方案。 为了帮助你解决一些常见问题方案,我们提供了 故障排除参考页 。 如果在完成教程时收到错误消息或某些内容不起作用,请确保检查故障排除页面。

欢迎批注

欢迎对教程发表评论,在更新教程时,将尽一切努力考虑教程注释中提供的更正或改进建议。

先决条件

在开始之前,请确保你的计算机上安装了 Windows 7 或更高版本以及以下产品之一:

如果你有 Visual Studio 2010 SP1 或 Visual Web Developer Express 2010 SP1,请同时安装以下产品:

若要完成本教程,需要其他一些软件,但尚未加载。 本教程将引导你完成在需要时安装它的步骤。

下载示例应用程序

要部署的应用程序名为 Contoso University,并且已为你创建。 它是一个大学网站的简化版本,基于 ASP.NET 网站上的实体框架教程中所述的 Contoso University 应用程序。

安装必备组件后,下载 Contoso University Web 应用程序.zip 文件包含项目的多个版本,以及包含所有 12 个教程的 PDF 文件。 若要完成本教程的步骤,请从 ContosoUniversity-Begin 开始。 若要查看教程末尾的项目外观,请打开 ContosoUniversity-End。 若要在迁移到教程 10 中的完整SQL Server之前查看项目的外观,请打开 ContosoUniversity-AfterTutorial09。

若要准备完成教程步骤,请将ContosoUniversity-Begin保存到用于处理 Visual Studio 项目的任何文件夹。 默认情况下,这是以下文件夹:

C:\Users\<username>\Documents\Visual Studio 2012\Projects

(对于本教程中的屏幕截图,项目文件夹位于 C:drive.)

启动 Visual Studio,打开项目,然后按 Ctrl-F5 运行它。

Home_page

可从菜单栏访问网站页面,并允许您执行以下功能:

  • (“关于”页) 显示学生统计信息。
  • 显示、编辑、删除和添加学生。
  • 显示和编辑课程。
  • 显示和编辑讲师。
  • 显示和编辑部门。

下面是几个具有代表性的页面的屏幕截图。

Students_Page

Add_Students_Page

查看影响部署的应用程序功能

应用程序的以下功能会影响其部署方式或部署它所要执行的操作。 本系列的以下教程将更详细地介绍其中每个内容。

  • Contoso University 使用SQL Server Compact数据库来存储应用程序数据,例如学生和讲师姓名。 数据库包含测试数据和生产数据的组合,在部署到生产环境时,需要排除测试数据。 本教程系列的后面部分将从 SQL Server Compact 迁移到 SQL Server。
  • 应用程序使用 ASP.NET 成员身份系统,该系统将用户帐户信息存储在SQL Server Compact数据库中。 应用程序定义有权访问某些受限信息的管理员用户。 需要使用一个管理员帐户部署成员身份数据库,而无需测试帐户。
  • 由于应用程序数据库和成员身份数据库使用 SQL Server Compact 作为数据库引擎,因此必须将数据库引擎部署到托管提供程序以及数据库本身。
  • 应用程序使用 ASP.NET 通用成员资格提供程序,以便成员资格系统可以将其数据存储在SQL Server Compact数据库中。 包含通用成员资格提供程序的程序集必须随应用程序一起部署。
  • 应用程序使用 Entity Framework 5.0 访问应用程序数据库中的数据。 包含 Entity Framework 5.0 的程序集必须与应用程序一起部署。
  • 应用程序使用第三方错误日志记录和报告实用工具。 此实用工具在必须随应用程序一起部署的程序集中提供。
  • 错误日志记录实用工具将 XML 文件中的错误信息写入文件文件夹。 必须确保 ASP.NET 在部署的站点中运行的帐户对此文件夹具有写入权限,并且必须从部署中排除此文件夹。 (否则,可能会将测试环境中的错误日志数据部署到生产环境,并且/或可能会删除生产错误日志文件。)
  • 该应用程序包括一些必须在部署 Web.config 文件中更改的设置,具体取决于目标环境 (测试或生产) ,以及其他必须更改的设置,具体取决于生成配置 (调试或发布) 。
  • Visual Studio 解决方案包括类库项目。 应仅部署此项目生成的程序集,而不是项目本身。

在本系列的第一个教程中,你已下载示例 Visual Studio 项目,并查看了影响应用程序部署方式的网站功能。 在以下教程中,通过设置要自动处理的某些操作来准备部署。 手动处理的其他项。