以下场景中有防火墙:
客户端PC
服务器PC
通信本身已经在运行(ping,使用WebClient),所以不要过于担心。 我在应用程序中使用以下连接字符串连接到命名实例(在本例中为" WINCC")从客户端PC到服务器PC(SQL Server 2008 R2)时遇到连接问题(数据库名称是正确的,已检查过!):
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网络接口:错误定位服务器/实例指定[xFFFFFFFF]"尝试建立与数据库的连接时(.Open命令)。 我99%肯定它必须对未打开的端口做一些事情。我已经多次看到Sql Browser服务的UDP端口1434必须打开。使用SQL NAtive客户端提供程序时这也是相关的吗?或者我应该尝试在连接字符串中专门命名端口? (比如" 10.40.140.100,49181 / WINCC"?)
任何评论都表示赞赏,谢谢! 最好的祝福, CMSPaul
答案 0 :(得分:0)
使用动态端口通常会导致问题。如果您有一台连接到网络内SQL服务器的App服务器,我建议在SQL服务器上使用静态IP,然后按照定义将其路由到防火墙。另外正如您所说,我将在您的连接字符串中定义TCP / IP端口。
这将在SQL Server网络配置下的SQL Server配置管理器中设置。选择协议。右键单击TCP / IP,然后选择“IP地址”选项卡。确保所有TCP动态端口都设置为0.在IPALL下,将TCP端口设置为静态IP地址。完成后,您将需要重新启动SQL服务器服务。