.NET 2.0下,SQLEXPRESS的连接问题
本人用.NET的club教程,但数据库无法进行连接。
连接字符串
<connectionStrings>
<add name="ClubSiteDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=club.mdf;Integrated Security=True;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
在服务器资源管理器上也无法进行连接。出现错误
由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
运行环境,原先装有SQLSERVER2000,后装VS2005
问题点数:20、回复次数:6Top
1 楼cubasic(basic)回复于 2006-03-03 13:47:51 得分 0
大家有用过吗?Top
2 楼chinawn(动性忍心)回复于 2006-03-05 03:39:02 得分 0
http://download.microsoft.com/download/8/1/d/81d789e2-0cbb-421e-b4f9-b40aabadd201/101SamplesCS.msi
101个 .net2.0的示例,好的很,研究研究把
Top
3 楼xxw168(老熊)回复于 2006-04-05 16:25:57 得分 0
我也遇到同样的问题
我将User Instance=True改为User Instance=False后“测试连接”通过;
不知原因,望高手指点Top
4 楼xxw168(老熊)回复于 2006-04-05 22:46:03 得分 0
我的问题解决了:
错误:由于启动用户实例的进程时出错,导致无法生成SQL Server的用户实例。
原因:重装SQLEXPRESS时,装在了不同的目录下;
解决方法:关闭Sqlserver及相关的程序,删除目录C:\Documents and Settings\<用户名>\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS下的文件。
OKTop
5 楼seelancer(郁闷枪骑兵)回复于 2006-04-05 22:59:48 得分 0
我想知道如果数据库是sqlserver 2000,那么能使用AttachDbFilename附加数据库吗Top
6 楼quou2002(曲欧)回复于 2006-04-06 01:45:50 得分 0
to--cubasic (basic), xxw168(老熊)
关于这个问题,我的blog里有一篇文章,当初我也遇到过。
--摘录,全文见我的blog---
在项目中通过Web Site Admin Tool工具(菜单website--〉asp.net configuration)新建用户和角色,随便建了几个,在sql2k5里此项目的数据库中什么都用户、角色都没有。奇怪了,项目数据库名为morning2,已经通过aspnet_regsql.exe命令初始化了表结构了阿。往其他库里找,发现新加的用户和角色都在aspnetdb里,而aspnetdb是以前运行aspnet_regsql.exe默认生成的数据库。why???
上次为了成功运行Personal starter kit建站,将machine.config中的连接字符串改了。详见前文 http://blog.csdn.net/quou2002/archive/2005/12/21/558494.aspx
再看此项目中的web.config文件,连接字符串为
<connectionStrings>
<add name="Personal" connectionString="Data Source=.;Integrated Security=True;Initial Catalog=Morning2" providerName="System.Data.SqlClient"/>
</connectionStrings>
是啊!!!人家微软为什么要使用你定的名字---“Personal”呢??
再想想上次的修改,难道是。。。。马上把web.config里的连接字符串改为:
<connectionStrings>
<add name="Personal" connectionString="Data Source=.;Integrated Security=True;Initial Catalog=Morning2" providerName="System.Data.SqlClient"/>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=.;Integrated Security=True;Initial Catalog=Morning2" providerName="System.Data.SqlClient"/>
</connectionStrings>
---ok。。。
看来asp.net2.0中的角色成员管理,调用的连接字符串默认名必须为LocalSqlServer,如果web.config里没有定义,它会自动到machine.config里找,而在machine.config里有其默认值,上次我正是将其对应的数据库名改为默认名aspnetdb导致它把新加的用户加到了aspnetdb里。
看来用人家的东西,就是“手软”啊!!!
-------续:
上次说到,连接字符串默认名必须是LocalSqlServer,原因是在machine.config里,关键是如下节:
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
</providers>
</membership>
看见高亮部分没,如果你自己的web.config里没有单独设定(覆盖)此节信息,那么成员服务就从这里找设置了。我们可以在不同项目里单独通过设定web.config来覆盖它的默认设定。还有,看见上面成员服务里其他的一些属性设定没?都可以如此这般。。。<呵呵,以前有人问:为什么我用Membership.CreateUser(userName, pwd)来建个用户会报错? 看见默认设定没---requiresQuestionAndAnswer="true",这就是原因了>
==== 我的邮箱:quou2002@tom.com
~~~~ 我的Blog:http://blog.csdn.net/quou2002
Top




