asp.net - SQL Express 连接字符串 hell ASP.Net

标签 asp.net connection-string database-connection sql-server-express

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/

相关文章:

php - mysql连接

php - 准备好的语句如何在 SQL 级别上工作?

java - 服务器 Derby 数据库远程到客户端 Java

entity-framework - 在 Entity Framework 代码优先中使用动态连接字符串进行迁移(来自文本文件的连接字符串)

asp.net - 动态地将用户控件添加到转发器

c# - 为什么我的 ASP.NET 5 应用程序不能在 IIS 7.5 上运行?

c# - ASP.Net LinkBut​​ton 在本地工作但不能在服务器上工作

c# - 通过 TCP/IP 而非 NP 连接到 SQL 服务器

asp.net - MembershipProvider 在代码中更改连接字符串

c# - 将字符串转换为没有时间的日期