SQL Express 2005 正在本地运行。我有一个由另一个人编写的项目在同一台机器上运行。我想做的就是连接到它,不会那么难吧?
这是我在旧的经典 ASP 代码中使用的代码来访问在同一实例上运行的另一个数据库:
提供商=SQLOLEDB;数据源=MYLAPTOP\MSSMLBIZ;持久安全信息=True;用户ID=TestUser;密码=letmein;初始目录=TestDB
但是尝试该版本会使 .net 代码出现不稳定,因为他是使用 SQLServer 驱动程序编写的,因此它不喜欢 Provider 的东西。
这是他的代码中的原始连接字符串:
服务器=(本地);初始目录=TheDatabase;用户ID=TheUser;密码=ThePassword;
我去过http://www.connectionstrings.com/sql-server-2005并尝试了其中的几个选项,这些选项都得到“SQL Server 不存在或访问被拒绝”(这是多么可爱的混合错误消息!):
- 数据源=localhost;集成安全性=True;初始目录=TheDatabase
- 数据源=localhost\SQLEXPRESS;集成安全性=True;初始目录=TheDatabase
- 数据源=MyLaptop\SQLEXPRESS;集成安全性=True;初始目录=TheDatabase
- 服务器=MyLaptop\SQLEXPRESS;初始目录=TheDatabase;用户ID=TheUser;密码=ThePassword;
我已在 SQL Express 中为 MyLaptop/IUSR_MyLaptop、MyLaptop/ASPNET、MyLaptop/IWAM_MyLaptop 创建登录名,并授予它们对我的数据库的所有读/写权限,并将其默认数据库设置为 TheDatabase。
我到底做错了什么,如何进一步调试问题?
更新:特别感谢克里斯的所有指点,最后,如果您遇到类似的问题,请阅读所有评论,其中有很多关于如何追踪它们的链接和提示。
最佳答案
您能具体说明配置中的内容吗?
您是否使用该 block - 在这种情况下,有效的连接字符串将是:
<add name="connection" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\MSSMLBIZ;Initial Catalog=TheDatabase;Integrated Security=True" />
或
<add name="connection" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\MSSMLBIZ;Initial Catalog=TheDatabase;Integrated Security=False;User Id=TheUser;Password=ThePassword;Application Name=AppName;" />
或者您是否从应用程序设置中获取连接字符串 - 在这种情况下,我猜您的提供程序是在应用程序本身内部的代码中设置的?
关于asp.net - SQL Express 连接字符串 hell ASP.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170834/