错误定位 Server/Instance 使用 SQLNCLI10.1 指定

Error Locating Server/Instance Specified using SQLNCLI10.1

以下情况,这些 PC 之间有防火墙:

  1. 客户端电脑

    • IP 10.10.140.100
    • 子网 255.255.0.0
    • 网关:10.10.0.254
  2. 服务器电脑

    • IP 10.40.140.100
    • 子网 255.255.0.0
    • 网关:10.140.255.254

通信本身已经在工作(ping,使用 WebClient)所以不要太担心。 我在使用应用程序(数据库)中的以下连接字符串连接到从客户端 PC 到服务器 PC(SQL Server 2008 R2)的命名实例(在本例中为 "WINCC")时遇到连接问题名称正确,已检查!):

    strserver = "10.40.140.100"
    strConnectionString = "Provider=SQLNCLI10.1;Integrated Security=SSPI;    Persist Security Info=False;Initial Catalog=" & Database & ";Data Source=" & strServer & "\WINCC"    

情况:

脚本因以下错误而崩溃: "SQL Server Network Interfaces: Error locating Server/Instance Specified [xFFFFFFFF]" 尝试建立与数据库的连接时(.Open 命令)。 我 99% 确定它必须对未打开的端口执行某些操作。好几次看到Sql浏览器服务的UDP Port 1434要开放.这在使用 SQL Native Client Provider 时是否也相关?或者我应该尝试在连接字符串中专门命名端口吗? (比如“10.40.140.100,49181/WINCC”?)

不胜感激,谢谢! 此致, CM保罗

使用动态端口通常会导致问题。如果您有一个应用程序服务器连接到网络内的 SQL 服务器,我建议在 SQL 服务器上使用静态 IP,然后按照定义将其路由通过防火墙。另外正如您所说,我会在您的连接字符串中定义 TCP/IP 端口。

这将在 SQL 服务器网络配置下的 SQL 服务器配置管理器中设置。 Select 的协议。右键单击 TCP/IP 和 select IP 地址选项卡。确保所有 TCP 动态端口都设置为 0。在 IPALL 下,将 TCP 端口设置为静态 IP 地址。完成后,您将需要重新启动 SQL 服务器服务。