4

SQL Express 2005在本地运行。我有一个项目由另一个人在同一台机器上运行。我想要做的就是连接到它,不能那么难吧?SQL Express连接字符串hell ASP.Net

这是一个我在我的旧传统的ASP代码用来打在同一个实例中运行的另一个数据库:

提供程序= SQLOLEDB;数据源= MYLAPTOP \ MSSMLBIZ;坚持安全信息= TRUE;用户ID = TestUser; Password = letmein; Initial Catalog = TestDB

但尝试使用.net代码的一个版本,因为他使用SQLServer驱动程序编写它,所以它不喜欢提供程序的东西。

下面是从他的代码的原单连接字符串:

服务器=(当地);初始目录= TheDatabase;用户ID = TheUser;密码= ThePassword;

我去过http://www.connectionstrings.com/sql-server-2005和试了几个选项从那里,这些都得到“SQL Server不存在或拒绝访问”(多么可爱的混合错误消息!):

  • 数据源=本地主机;集成安全性= TRUE;初始目录= TheDatabase
  • 数据源=本地主机\ SQLEXPRESS;集成安全性= TRUE;初始目录= TheDatabase
  • 数据源= MyLaptop \ SQLEXPRESS;集成安全性= TRUE;初始目录=数据库
  • Se rver = MyLaptop \ SQLEXPRESS; Initial Catalog = TheDatabase; User Id = TheUser; Password = ThePassword;

我已经创建了MyLaptop/IUSR_MyLaptop,MyLaptop/ASPNET,MyLaptop/IWAM_MyLaptop登录在SQL Express和给了他们所有的读/写权限,我的数据库并设置其默认DB是TheDatabase。

我做错了什么,我该如何调试这个问题呢?

更新:特别感谢克里斯的所有指针,最后到了那里,如果你有类似的问题,请阅读所有评论有很多链接和提示如何跟踪他们。

+0

可能是一个愚蠢的问题,但你试图连接到的sql express服务器的实际名称是什么?是localhost \ sqlexpress还是别的? 将应用程序排除在等式之外,只需尝试通过在命令提示符中执行'sqlcmd -S servername \ instancename -E'通过sqlcmd连接到sql,并查看它是否连接。 – 2009-07-23 10:31:00

+0

该实例实际上称为MSSMLBIZ,但为了清晰起见将其保留为SQLExpress。 试过以上,并得到这个: SQL网络接口:错误定位服务器/实例指定[xFFFFFFFF]。 Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到SQL Server 2005时,此故障可能是由于默认设置下SQL Server不允许远程连接导致的。 Sqlcmd:错误:Microsoft SQL Native Client:登录超时已过期。 检入服务器配置并打开了所有设置? – 2009-07-23 10:43:21

+0

要尝试重新安装尝试重置所有内容并重新开始... – 2009-07-23 11:23:34

回答

1

随着您的评论是错误消息,您应该通过项目在http://blogs.msdn.com/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx

跑我相信的实例正在运行,并允许在TCPIP连接?

+0

现在阅读该文章,下载PortQry。是的实例正在运行,并从我读过的,看到它“应该”允许tcpip。禁用动态端口并将其设置为始终使用1434.但是,如果运行本地服务器,我需要吗? – 2009-07-23 10:54:37

+1

否 - 如果本地连接,但您遇到了一些奇怪的事情应该没有关系 - 您目前如何管理服务器。 SSMS?你是用windows或sql登录连接的吗? – 2009-07-23 11:02:57

+0

在配置管理器中 - 检查客户端配置以查看启用了哪些协议以进行连接以及它们的应用顺序。 – 2009-07-23 11:04:56

0

不应该读取您的数据源:Data Source = localhost \ sqlexpress?

+0

试过那个,加在上面。 – 2009-07-23 10:27:33

0

您没有提及授予'TheUser'访问服务器数据库的权限 - 如果您从另一台服务器上恢复,则可能是sid不匹配。

尝试运行

sp_update_users_login 'report'

对有问题的数据库。

如果返回的用户帐户在报告中尝试:

sp_update_users_login 'update_one', 'theuser', 'theuser'

重新映射的东西。

+0

我似乎没有该存储过程可用? 消息2812,级别16,状态62,行1 找不到存储过程'sp_update_users_login'。 – 2009-07-23 10:45:43

+0

对不起 - 应该是sp_change_users_login ...但如果你连一个基本的服务器连接都没有关系。 – 2009-07-23 10:53:20

+0

好吧,让它运行,只有一个条目,一个从开发人员运行数据库我猜。不是我的。我确实恢复了数据库,但之后又添加了我的用户。这份报告告诉我什么克里斯? – 2009-07-23 11:06:17

1

你能建议到底什么是配置?

是否使用块 - 在这种情况下,一个有效的连接字符串将是:

<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;" /> 

还是下车从应用程序设置连接字符串 - 在这种情况下,我猜你的提供者是在应用程序本身的代码中设置的?

+0

应用程序设置,其.Net版本1(由于它将被托管在哪里的限制)。重新安装也不顺利...这些日子之一... – 2009-07-23 12:54:08

+0

也感谢您的帮助克里斯,非常感谢,DB设置不是真的我的包... – 2009-07-23 12:54:50