SQL Server实例的连接字符串

问题描述 投票:0回答:2

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

他们分享,

  1. 同一台机器
  2. 相同的IP
  3. 相同的实例名称
  4. 同一个港口

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

使用查询分析器一旦连接到,

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

(是的,它发生了。我100%肯定,因为我内部有单独的DB)

现在谈到问题,

使用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)

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

c# sql-server connection-string instance named-pipes
2个回答
0
投票

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

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

它对TCP端口说了什么?


0
投票

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

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

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

编辑:好的,第一个实例正在侦听命名管道。根据server=np:MyServer\Invent;,也许this page会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.