目前有一个应用程序尝试连接到(local)
作为.NET中的数据源。出于某种原因(local)
无效,但localhost
正在运作。
我没有使用命名实例,直接将(local)
替换为localhost
会导致应用程序成功连接。
为什么会出现这种情况?我了解(local)
是一个关键字,但它应该与localhost
完全相同吗?
我已经尝试过SQL Server Management Studio的连接,我可以使用localhost
或.
但不是(local)
成功连接。
答案 0 :(得分:0)
“(local)”可能只是'localhost'的别名。
在SQLServer中,'(local)'和'。'意味着将使用同一台机器中的命名管道(共享内存)协议进行连接
Localhost是查找服务器的IP地址。 所有通信都通过TCP在地址127.0.0.1上进行 本地是特定于SQL Server的。通信不会使用TCP,而是使用命名管道。
因为它看起来不同版本的connectionstring会导致客户端和sql-server之间的通信协议不同。这会导致不同的行为。
尝试重新安装并确保在安装过程中选择“默认实例”而不是“命名实例”。