SQL Server实例的连接字符串

时间:2011-02-11 10:42:56

标签: c# sql-server connection-string instance named-pipes

我有SQL server 2000,它还有2个其他的sql实例。主服务器没有问题,此后我说的是这两个实例,

他们分享,

  
      
  1. 同一台机器
  2.   
  3. 相同的IP
  4.   
  5. 相同实例名称
  6.   
  7. 同一港口
  8.   

我也很想知道它是如何完成的。

使用查询分析器连接后,

MyServer\Invent (it connects to first instance)
MyServer\Invent,1433 (it connects to second instance)

(是的,它发生了。我100%肯定,因为我内部有独立的数据库)

现在谈到问题,

使用C#SqlConnection,我无法连接到第一个,但可以连接到第二个。

1. Data Source=MyServer\Invent;Persist Security Info=True;Initial Catalog=TEST;uid=admin;pwd=123
2. Data Source=MyServer\Invent,1433;Persist Security Info=True;Initial Catalog=TEST;uid=admin;pwd=123

一旦我使用了第一个连接字符串,它会挂起一段时间并收到以下错误消息...

在建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)

在网上搜索,很多人说可以安装这样的。一个连接应该使用命名管道(tcp / 445)

知道如何解决这个问题吗? 可能的连接字符串格式? 无论如何为命名管道创建连接字符串?

2 个答案:

答案 0 :(得分:0)

我想也许你的第一个实例实际上并没有在1433上听,即使这通常是默认的。

我相信可以使用SQL Server配置实用程序更改默认端口。检查默认端口是什么,并假设它不是1433,尝试在第一个连接字符串中指定它。

这是关于如何检查您的实例正在侦听哪个端口的some info

编辑:好的,第一个实例正在侦听命名管道。根据{{​​3}},server=np:MyServer\Invent;可能会有效。

答案 1 :(得分:0)

我认为你的问题是一台服务器正在使用不同的端口。所以它使用TCP但是使用不同的端口,你需要找出它使用的端口,然后将该端口添加到连接字符串,就像你正在使用其他实例一样(1433)。

您是SQL Server配置管理器。 导航到SQL Server网络配置节点并展开它。 在子节点中找到实例 现在在右侧你会看到协议(共享内存,命名管道,TCP等) 双击TCP。 在弹出的对话框中,切换到“IP地址”选项卡。 一直向下滚动到“IP All”部分

TCP端口有什么用? enter image description here