1

我在 SQL 客户端随机断开与服务器的连接时遇到问题,并出现 TCP 连接强制关闭错误消息。

设置如下:

  • 在 Windows Server 2008 上运行的 SQL 2014 Express。
  • 客户端是连接 Wi-Fi 的 Microsoft Surface 3-Standard 或 4-PRO,运行 Windows 10 版本 1703。
  • 大多数情况下,Wi-Fi 基础设施是 Aruba AP-105,在某些地方有一些 Cisco AP。
  • 客户端应用程序(用 VB6 编写,使用 SQLNCLI 11 数据库驱动程序)定期与 SQL 服务器建立连接(每 15 秒左右)。

SQL连接会随机掉线,报告

  • “TCP 提供者:现有连接被远程主机强行关闭。”

这可以在任何时候发生(包括在使用应用程序的过程中),不一定是在 PC 休眠一段时间之后。

我们在硬连线 LAN 连接上有一些客户端,这些客户端从不断开连接,这使我们相信问题与短暂的 Wi-Fi 断开有关。

在测试中,我们无法重现错误,即使关闭 Wi-Fi(以及我们能想到的任何其他 LAN 干扰)并重新打开,软件也会恢复,但没有任何故障迹象。

谷歌一直非常“乐于助人”,有很多关于这个问题的参考资料,通常是指服务器上的 TCP Chimney Offload 设置。一旦我们了解了这些都是什么,他们就被尝试过,但没有任何区别。

那么,任何人都可以建议可能发生的事情吗?

我们过去一直使用 SQLOLEDB 驱动程序并遇到“一般网络故障”错误(不是特别有用!),切换到 SQLNCLI 以查看它是否改善了这种情况,但它没有,但确实暴露了真正的错误消息。

连接字符串如下:

sqlConnectionString = "Provider=SQLNCLI11;" & _
                      "Server=" & gblSQLDataSource & ";" & _
                      "Database=" & strDB & ";" & _
                      "Uid=" & oUser.DecryptSQLUser & ";" & _
                      "Pwd=" & oUser.DecryptSQLPass & ";" & _
                      "MARS Connection=True;" & _
                      "DataTypeCompatibility=80;"

吉姆

4

0 回答 0