解决“此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭”问题,完整综合版。
一、找到这三篇文章的过程:
因为要使用sql server 2005的 ssis,所以我把安装vs2005时的sql server 2005 express删掉了重新安装了sql server 2005 development,安装完毕,使用ssis导入数据完毕之后,原来开发的程序不好用了。出现异常“此版本的SQL SERVER 不支持用户实例登录标志。该连接将关闭。 ”,上网搜一下,出来一堆。挑了其中一个图和文字都很多的试了一下,还是有问题。再找一个图文并茂的,试了一下,结果,新建的连接不出错,但是原来的连接 却出错。对比一下代码,发现按照第二篇文章所说,新建的连接,已经设置成了False,但是原来的连接却是true。代码如下:
<add name="ConnectionString"
connectionString="Data
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated
Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
<add name="ConnectionString2" connectionString="Data
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated
Security=True;User Instance=False"
providerName="System.Data.SqlClient" />
然后,手工把上面的User Instance=True改为False。问题解决了。
接下来,就是要把搜出来的一堆网页关闭了,忽然发现其中一个贴子,也提到了这一点,并且他还遇到了另外一个问题,也给出了解决的办法。
所以我就决定把这三篇文章都放到一起了。
二、总结
1、连接的前提:sa账号和tcp连接。
这是第一篇文章里面主要解决的问题。作者通过step to step图文并茂的介绍了,sa账号的启用和远程连接的设置,这是程序运行基础。
2、User Instance选项。
这是第二篇文章里面解决问题的钥匙。根据MSDN的解释,我的理解是,对是express版本的sql,可以允许非管理员启动sql server的实例。
3、升级sql server express到sql server 正式版(我测试的是development版)。
如果是升级后添加的连接,按照第二篇文章所说的设置一下,就行了。但是对于以前在express版本下开发的程序,可以需要手工修改有关的代码。
4、如果还有其它的问题,请参考第三篇文章。
三、参考资料:
第一篇:《解决SQL Server 2005 Express中无法连接到服务器问题 》作者:PCJIM.NET
http://www.cnblogs.com/pcjim/archive/2007/10/21/870012.html
第二篇:《出现"此版本的sql server不支持用户实例登陆标志" 问题的解决方法 》作者:CShapWinForms
http://www.cnblogs.com/CShapWinForms/archive/2007/12/11/809620.html
第三篇:《Web.Config文件中SQLServerExpress数据库连接配置》作者:我行我素
注意:具体的操作步骤,在回复里面。
http://hi.baidu.com/ayasnoopy/blog/item/7af1778bf0cbe716c9fc7aa4.html
第四篇:《数据库连接字符串大全 》摘自:http://www.connectionstrings.com/
http://www.wysjs.cn/showlist/6093469d15d7ca0e53328.html
第五篇:《SqlConnectionStringBuilder.UserInstance 属性 》作者:MSDN
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnectionstringbuilder.userinstance(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnectionstringbuilder.userinstance.aspx