我有SQL server 2000,它还有2个其他的sql实例。主服务器没有问题,此后我说的是这两个实例,
他们分享,
- 同一台机器
- 相同的IP
- 相同实例名称
- 同一港口
醇>
我也很想知道它是如何完成的。
使用查询分析器连接后,
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)
知道如何解决这个问题吗? 可能的连接字符串格式? 无论如何为命名管道创建连接字符串?
答案 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端口有什么用?