带有IP地址的SQL Server实例名称

Net*_*zen 3 .net c# sql-server connection-string named-instance

我发生了一个非常奇怪的情况,我希望有人知道为什么.

我为默认端口1433上的所有端口启用了TCP/IP.

所有测试都与SQL Server Management Studio和我的程序一致.

这有效:

  • 计算机名\实例
  • 127.0.0.1
  • 127.0.0.1,1433
  • 192.168.1.100
  • 192.168.1.100,1433

这不起作用:

  • 127.0.0.1 \实例

注意:我知道它与防火墙无关,因为我可以通过端口1433 telnet到127.0.0.1.

注意2:连接字符串无关紧要,因为测试与Management Studio一致,但无论如何我都会给它: server={0};Integrated Security=True;Database=MyDatabase

在阅读MSDN时,您似乎应该能够通过IP地址连接到实例名称.

这里发生了什么?

Rem*_*anu 9

默认情况下,命名的 SQL实例在随机端口上侦听.您需要启动SQL Browser服务,它在1434上侦听UDP并响应指示客户端真正侦听端口的实例发现请求.您还需要允许防火墙根据进程名称来戳孔,以便SQL可以在任何感觉到的端口绑定.

否则,您必须在非命名端口上显式强制命名实例.