我的应用程序从无法连接到数据库的客户端机器上抛出错误。因此,作为测试,我在同一台客户端计算机上使用 SQL Management Studio 2008 尝试连接到数据库,我发现如果我使用 IP\InstanceName 则可以连接,但如果我使用 ServerComputerName\InstanceName 则无法连接. 我已经验证了以下内容:
- 服务器与客户端具有相同的网关和子网掩码。
- 我可以使用服务器的 IP 地址或计算机名 ping 服务器。
- 服务器或客户端计算机上没有防火墙。
- 验证服务器 SQL 浏览器服务是否正在运行。
- 验证服务器设置为允许远程连接。
- 验证服务器 TCP/IP 已通过 SQL SErver 配置管理器启用。
- 我可以使用 ServerComputerName\InstanceName 从不同的客户端计算机进行连接
- 服务器和客户端都使用静态 IP 设置,在 IPV4 属性下没有 DNS 服务器。
- 从客户端到服务器的 Tracert 仅显示一跳,即直接到服务器机器 IP。
- 我可以使用主机名从服务器计算机远程访问客户端计算机,反之亦然。
然后我转到服务器机器并使用 LNKLAB8\Xmark 连接(LNKLAB8 是主机名,Xmark 是我的实例名),我连接成功。但是,当我运行命令 SELECT @@SERVERNAME 时,我得到的结果是 LNKLABARIAL8\XMARK
这让我感到困惑,因为如果我按照下面的屏幕截图右键单击数据库属性,它会显示 LNKLAB8/Xmark .. 我是疯了还是发生了什么奇怪的事情?在采取了我所采取的步骤之后,您对如何让客户端计算机使用服务器主机名而不是服务器 IP 地址连接到数据库有什么建议吗?
我在这个问题上有点碰壁,我不确定我是面临网络相关问题还是数据库设置问题。
编辑:当我尝试使用主机名连接到服务器数据库时,我会得到以下信息:
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)