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

标签 c# .net 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 上远程登录到 127.0.0.1。

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

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

这是怎么回事?

最佳答案

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

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

关于c# - 带有 IP 地址的 SQL Server 实例名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615398/

相关文章:

c# - System.Reflection.PropertyInfo.GetValue() - 降级 .NET 版本 - 缺少方法签名

sql - 从嵌套选择 T-SQL 中选择

c# - 如果 catch block 包含 continue 语句,finally block 何时执行?

c# - 无法打开主机 WCF REST 服务

c# - LINQ ToList().Take(10) vs Take(10).ToList() 哪个生成更高效的查询

c# - 使用 RavenDB 和 LINQ 从子集中查找至少包含一个元素的对象

c# - 性能 : Returning multiple tables from Sql Server. C# .Net

c# - 如何在拖动时突出显示目标节点

sql-server - SSIS查找和反向功能

sql-server - MSSQL 以固定值从一个表向另一个表插入数据