将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005

 

Scott Guthrie
产品单元经理,Web.NET

2005 年 9 月

适用于:
   Microsoft ASP.NET 2.0
   Microsoft SQL Server 2005 Express Edition
   Microsoft SQL Server 2005
   Microsoft SQL Server 2000

总结:介绍如何设置新的 ASP.NET 成员资格、角色管理和个性化服务,以使用常规SQL Server而不是Microsoft SQL Server Express。 ) (8 个打印页

注意 这篇文章 最初出现在 斯科特的博客上。 请 在此处加入讨论。

目录

快速回顾:新 ASP.NET 2.0 应用程序服务是什么?
默认 SQL Express 提供程序
结论

快速回顾:新 ASP.NET 2.0 应用程序服务是什么?

Microsoft ASP.NET 2.0 包括许多内置的“构建基块”应用程序服务。 我们称它们为“构建基块”,因为它们是有用的核心框架,可用于在当今的 Web 应用程序中实现超常见方案,因此,它们可以为开发人员提供显著的工作效率和时间节省。

它们包括:

  • 用于管理用户名/密码和安全凭据管理的成员资格 API,以及支持将用户映射到逻辑组的角色 API。
  • 配置文件 API,用于存储有关访问网站的经过身份验证的用户和匿名用户的任意属性, (例如,其邮政编码、性别、主题首选项等) 。
  • 用于存储控件自定义首选项的个性化 API, (这最常用于 ASP.NET 2.0) 中的 WebPart 功能。
  • 运行状况监视 API,可以跟踪和收集有关运行状态的信息以及 Web 应用程序中发生的任何错误。
  • 一种网站导航 API,用于定义应用程序中的层次结构,并用于构造导航 UI (菜单、树视图、面包屑) ,这些菜单、树视图、面包屑) 可以基于当前传入用户在网站中的位置。

ASP.NET 应用程序服务 API 设计为可插入且与实现无关,这意味着 API 不会硬编码数据存储在何处的详细信息。 相反,API 会调用“提供程序”,这些提供程序是实现特定“提供程序协定”的类,该协定定义为具有 API 期望实现的一组已定义的方法/属性的抽象类。

ASP.NET 2.0 附带了许多内置提供程序,包括:

  • Microsoft SQL Server Express访问本地 SQL Express 数据库的提供程序。
  • Microsoft SQL Server适用于完整 SQL Server 的 2000/2005 提供程序。
  • 可以针对 AD 或 ADAM 实现的 Active Directory 提供程序。
  • 可以绑定到文件系统上的 XML 文件的 XML 提供程序, (用于网站导航) 。

该模型的好处在于,如果你不喜欢随附在框中的现有提供程序,或者如果你想要将这些 API 与已在使用的现有数据存储集成,则只需实现提供程序并将其插入。 例如:你可能已有一个存储用户名/密码的现有数据库,或者需要与之集成的现有 LDAP 系统。 只需将 MembershipProvider 协定作为类实现,并将其注册到应用程序的web.config文件中 (下面) 的详细信息,ASP.NET 中对成员资格 API 的所有调用都将委托给代码。

默认 SQL Express 提供程序

大多数 ASP.NET 2.0 应用程序服务都配置为使用内置 SQL Express 提供程序。 此提供程序将在你首次使用这些应用程序服务之一时自动为你创建和预配一个新数据库,并提供一种非常简单的入门方法,无需很多设置麻烦, (只需准备好 SQL Express 即可) 。 请注意,SQL Express 数据库还可以升级为在完整SQL Server实例的上下文中运行,因此,当应用非常成功时,使用 SQL Express 进行开发构建的应用可以轻松升级到大容量、群集化、故障转移的安全 8P SQL 框。

如何将提供程序更改为使用 SQL Server 而不是 SQL Express?

如果要使用完整SQL Server 2000 或 SQL Server 2005 数据库实例而不是 SQL Express,可以按照以下步骤操作:

步骤 1:创建或获取空白SQL 数据库实例

在此步骤中,需要创建或获取标准 SQL 数据库实例为空的连接字符串。

步骤 2:使用 ASP.NET 架构预配SQL 数据库

在系统上打开命令行窗口,运行随 ASP.NET 2.0 一起安装在 C:\WINDOWS\Microsoft.NET\Framework\v2.0.xyz 目录下的 aspnet_regsql.exe 实用工具。

请注意,此实用工具可以在基于 GUI 的模式下运行,也可以使用命令行开关运行, (只需添加 -?用于查看所有开关选项的标志) 。

使用此向导,可以演练为 ASP.NET 2.0 附带的内置 SQL 提供程序创建架构、表和 sproc。 图 1 到图 5 显示了此操作的分步演练。

Aa479307.appsrvsql_fig01 (en-us,MSDN.10) .gif

图 1. SQL Server安装向导,欢迎屏幕

Aa479307.appsrvsql_fig02 (en-us,MSDN.10) .gif

图 2. SQL Server安装向导,配置应用程序服务

Aa479307.appsrvsql_fig03 (en-us,MSDN.10) .gif

图 3. SQL Server安装向导中,选择服务器和数据库

Aa479307.appsrvsql_fig04 (en-us,MSDN.10) .gif

图 4。 SQL Server安装向导,确认设置

Aa479307.appsrvsql_fig05 (en-us,MSDN.10) .gif

图 5。 SQL Server安装向导完成

完成向导演练后,将安装并配置支持应用程序服务的所有数据库架构和存储过程。 (注意:如果你的 DBA 想要确切地了解幕后的情况,我们还会在上述框架目录下交付原始 .sql 文件,DBA 可以演练和/或手动运行这些文件以安装 DB.)

步骤 3:将Web.config文件指向新SQL 数据库

ASP.NET 2.0 现在支持web.config文件中名为 <connectionStrings> 的新部分, (不太奇怪,) 用于存储连接字符串。 从管理的角度来看,新 ASP.NET 管理员 MMC 管理单元现在提供了基于 GUI 的方式来配置和管理这些管理,如图 6 所示。

单击此处查看更大的图像。

图 6。 ASP.NET 管理页中的连接字符串 (单击图像以获取更大的图片)

ASP.NET 2.0 现在还支持加密存储在web.config文件中的任何部分,因此你现在可以安全地存储私有数据(如连接字符串),而无需编写自己的任何加密代码。

ASP.NET 2.0 附带名为 LocalSqlServer 的内置连接字符串,该字符串默认配置为使用 SQL Express 数据库,默认情况下,成员资格、角色、个性化、配置文件和运行状况监视服务配置为使用。

让应用程序自动利用新创建的 SQL 数据库的最简单方法是仅替换应用的本地web.config中此 LocalSqlServer 设置的连接字符串值。

例如,如果我在 appservicesdb 数据库实例的本地计算机上创建了数据库,并且使用 Windows 集成安全性进行连接,则我会更改本地web.config文件以指定此项。

<configuration>
    <connectionStrings>
        <remove name="LocalSqlServer"/>
        <add name="LocalSqlServer" 
         connectionString="Data Source=localhost;
           Initial Catalog=appservicesdb;
           Integrated Security=True" 
           providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

点击保存,所有内置应用程序服务现在都使用新创建和定义的SQL Server数据库。

注意 此方法的一个缺点是,我重新使用 LocalSqlServer 连接字符串名称,如果/当我在另一台计算机上部署数据库时,这感觉很奇怪。 如果我想使用自己的连接字符串名称来命名它,只需添加一个全新的连接字符串,然后指示现有提供程序使用新的连接字符串名称来代替默认的 LocalSqlServer 名称。

结论

虽然 ASP.NET 2.0 提供的应用程序服务默认使用 SQL Server 2005 Express,但更改这一点并使用 SQL Server 2000 或 2005 是相当简单的。 进行此更改后,即可享受这些数据库引擎功能的优势。

 

关于作者

Scott Guthrie 共同创立了 ASP.NET 团队,并领导负责构建产品的设计团队。 他的个人贡献包括:ASP.NET Web Forms页面体系结构、ASP.NET Web 服务基础结构、ASP.NET 编译系统、ASP.NET 分布式会话状态基础结构、ASP.NET 部署体系结构、ASP.NET 可靠性系统和 ASP.NET HTTP 运行时体系结构。 在 ASP.NET 之前,Scott 是 IIS 和 Windows NT 开发团队的成员。

© Microsoft Corporation. 保留所有权利。