Unable to connect to localDB in VS2012 – “建立与 SQL Server 的连接时发生网络相关或特定于实例的错误...”

Posted

技术标签:

【中文标题】Unable to connect to localDB in VS2012 – “建立与 SQL Server 的连接时发生网络相关或特定于实例的错误...”【英文标题】:Unable to connect to localDB in VS2012 – "A network-related or instance-specific error occurred while establishing a connection to SQL Server..." 【发布时间】:2012-09-09 21:41:11 【问题描述】:

这很奇怪,因为我可以通过 SSMS 2008R2 使用相同的连接字符串 ("Data Source=(LocalDB)\v11.0;Integrated Security=true") 连接到 localDB

只有C# 代码无法连接,我尝试使用Connect Timeout=60 增加登录时间,但没有成功。

我还尝试指定数据库 Initial Catalog=<databasename>,其中 是我通过 ssms 在 localdb 上创建的数据库。

关于为什么不连接的任何指针?

【问题讨论】:

首先通过VS中的服务器资源管理器连接你的数据库。连接成功后右击找到属性。在那里你会得到连接字符串。只需将其复制并粘贴到 web.config 中即可。 @Kundan 我这样做了,但它抛出了同样的错误。服务器资源管理器连接成功,然后我从提到的属性中复制了连接字符串,但我的应用程序仍然无法使用相同的字符串进行连接。 你能粘贴连接字符串吗? 【参考方案1】:

有没有可能是因为您忘记了双转义反斜杠?你试过这个吗:

"Data Source=(LocalDB)\\v11.0;Integrated Security=true"

或者更好的是,您可以只使用@ 标记来禁用整个连接字符串的字符转义:

@"Data Source=(LocalDB)\v11.0;Integrated Security=true"

【讨论】:

啊,这真是个窍门。为什么它需要双\\?真的很奇怪..谢谢!它奏效了。 看来\v是个特殊字符! 没错!如果没有双重转义,\v 将被视为单个(和特殊)字符。您也可以使用 @(在 C# 中)来避免转义,我已经更新了我的答案以反映它。 另外,应该注意转义字符会阻止 SSMS 与 LocalDb 建立连接。 @J.AndrewLaughlin 没错!只需使用@ 来禁用转义并减少复制粘贴的思考:D

以上是关于Unable to connect to localDB in VS2012 – “建立与 SQL Server 的连接时发生网络相关或特定于实例的错误...”的主要内容,如果未能解决你的问题,请参考以下文章

[python] disconnected: unable to connect to renderer解决方法

Unable to connect to CUPS server localhost:631

Unable to connect to a 怎么办

telnet: Unable to connect to remote host: Connection refused

Unable to connect to MKS:Internal error

spring boot 集成 redis 出现 “Unable to connect to localhost:6379”