VSTS2005 -- 使用Personal web site starter kit模版建站的一些问题

下午,试用了一下VSTS2005的Personal web site starter kit模版建站。什么都不作,启动,出错,提示关于数据库联接方面出错。我当初没装它自带的sql2005 express,直接装的企业版sql2005。

错误提示:

An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

总结一下最后的方案:

1、打开vs自带的命令行窗口,运行aspnet_regsql.exe,按提示操作,在sql2005里建立了一个名为aspnetdb的数据库,右键点数据库aspnetdb-->新查询,在项目路径下App_data里有个personal-add.sql,里面内容复制粘贴到新查询里,运行,这样在aspnetdb里加入了程序需要的表结构;

2、找到2.0带的machine.config在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG下,找到<connectionStrings>节,将里面的内容改为: 
<connectionStrings>
    <add name="LocalSqlServer" connectionString="data source=.;Integrated Security=SSPI;Initial Catalog=aspnetdb;" providerName="System.Data.SqlClient" />
  </connectionStrings>
打开项目下的web.config,改<connectionStrings>节为:
 <connectionStrings>
  <add name="Personal" connectionString="Data Source=.;Initial Catalog=aspnetdb;Integrated Security=True;" providerName="System.Data.SqlClient" />
  <!--<add name="LocalSqlServer" connectionString="Data Source=.;Initial Catalog=aspnetdb;Integrated Security=True;" providerName="System.Data.SqlClient" />-->
 </connectionStrings>

ok,运行!

不知道为什么,machine.config里和项目模版里自动把数据库指定为 ./sqlexpress ,我明明没有装express啊。还有我用sqlprovider联接到它自带的personal.mdf 数据库,总提示我remote access失败,我明明把tcp/ip方式打开了。(我在另一台机器上装了sqlexpress,不打开tcpip方式,提示出错信息一样,打开tcpip就可以)

----继续研究2.0吧

=====看了微软的一篇文章才知道,原来如此====
http://www.microsoft.com/china/msdn/library/webservices/asp.net/MedLibStrtKit.mspx

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

发布日期: 12/8/2005 | 更新日期: 12/8/2005

Scott Guthrie
Product Unit Manager,Web.NET

适用于:
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。

本文最初发表于 Scott 的网络日记。请在此处加入讨论。

*
本页内容

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

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

Microsoft ASP.NET 2.0 包含许多内置的“构造块”应用程序服务。我们称其为“构造块”的原因是,它们是有用的核心框架,从而能够在超常情况下用于当前的 Web 应用程序 — 因此,它们可以大大提高生产效率并节约开发人员的时间。

这些构造块包括:

成员关系 API(用于管理用户名/密码和安全凭据)以及角色 API(支持将用户映射到逻辑组)。

配置文件 API,用于存储访问 Web 站点的已验证用户和匿名用户的任意属性(例如,邮编、性别、主题首选项等)。

个性化 API,用于存储控件自定义首选项(通常与 ASP.NET 2.0 中的 WebPart 功能一起使用)。

状态监视 API,用于跟踪和收集有关运行状态的信息和 Web 应用程序内部发生的任何错误。

站点导航 API,用于定义应用程序内部的层次结构,以及根据当前传入用户在站点内的位置来构建特定于上下文的导航 UI(菜单、树视图、详细路径跟踪)。

ASP.NET 应用程序服务 API 可插接且实现过程不可知,这意味着,API 不对数据存储位置的详细信息进行硬编码。相反,API 调入“提供程序”,而“提供程序”是实现特定“提供程序约定”(定义为一个抽象类,具有 API 期望实现的一组定义好的方法/属性)的类。

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

针对本地 SQL Express 数据库的 Microsoft SQL Server Express 提供程序。

针对成熟的 SQL Server 的 Microsoft SQL Server 2000/2005 提供程序。

针对 AD 或 ADAM 实现的活动目录提供程序。

绑定文件系统上 XML 文件的 XML 提供程序(用于站点导航)。

该模型的优势在于,如果您不喜欢随附的现有提供程序,或者希望针对已经使用的现有数据存储集成这些 API,那么只需实现一个提供程序并将其插入模型即可。例如:您或许已经有一个存储用户名/密码的现有数据库,或者一个需要集成的现有 LDAP 系统。只需将成员关系提供程序约定实现为一个类,并在应用程序的 web.config 文件中注册(后文将详细说明),然后对 ASP.NET 中成员关系 API 的所有调用将委托给代码。

默认的 SQL Express 提供程序

坦白说,大多数 ASP.NET 2.0 应用程序服务均配置为使用内置的 SQL Express 提供程序。在第一次使用一个应用程序服务时,该提供程序将自动创建和提供一个新的数据库,并提供一种非常简单的入门方法,而无需过多的安装步骤(只要有 SQL Express 就可以进行)。请注意,SQL Express 数据库也可以升级为在成熟的 SQL Server 实例上下文中运行。因此,使用 SQL Express 进行开发的应用程序可轻松升级为高容量、集群的故障转移安全 8P SQL 盒,与此同时所开发的应用程序将迈向更大的成功。

如何将提供程序从使用 SQL Express 更改为使用 SQL Server

如果要使用成熟的 SQL Server 2000 或 SQL Server 2005 数据库实例(而不是 SQL Express),可按照以下步骤执行:

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

步骤将创建或获取一个连接字符串,该字符串指向一个空的标准 SQL 数据库实例。

步骤 2:提供您的 SQL 数据库和 ASP.NET 架构

在系统中打开一个命令行窗口,并运行与 ASP.NET 2.0 一起安装的 aspnet_regsql.exe 实用工具,该实用工具位于 C:/WINDOWS/Microsoft.NET/Framework/v2.0.xyz 目录。

请注意,该实用工具可以在基于 GUI 的模式下运行,也可以与命令行开关一起运行(添加一个“-?”标记即可查看所有开关选项)。

通过这个向导,您能够演练如何为 ASP.NET 2.0 随附的内置 SQL 提供程序创建架构、表格和存储过程。图 1 至图 5 展示循序渐进的演练过程。


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


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


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


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


5. SQL Server 安装向导完成

演练向导完成后,将安装和配置所有支持应用程序服务的数据库架构和存储过程。(注:我们还提供了上述框架目录下的原始 .sql 文件,如果 DBA 想要确切知道内部发生的事情,可以手动演练和/或运行这些文件来安装 DB。)

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

现在,ASP.NET 2.0 支持 web.config 文件中一个名为 的新区段,它(显然)用于存储连接字符串。从管理角度看,好处之一是现在新的 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 Page Architecture、ASP.NET Web Services Infrastructure、ASP.NET Compilation System、ASP.NET Distributed Session State Infrastructure、ASP.NET Deployment Architecture、ASP.NET Reliability System 和 ASP.NET HTTP Runtime Architecture。在创建 ASP.NET 团队之前,Scott 是 IIS 和 Windows NT 开发团队的成员。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页