3

我们有一堆 VB6 应用程序可以访问两个不同的数据库服务器(都是 32 位 windows 2003,一个 SQL Server 2000,一个 SQL Server 2005)。大约每十分钟左右,我们就会收到一些错误:

[Microsoft][ODBC SQL Server 驱动程序]超时[Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]SQL Server 不存在或访问被拒绝。[Microsoft][ODBC SQL Server 驱动程序]ConnectionRead()

这种情况随机发生在十几台不同的计算机上。我们也有 IP 电话,它们都通过同一个网络运行,并且没有任何问题。我们还可以将 VNC 导入用户计算机并重现他们遇到的错误,但 VNC 仍然可以继续工作。电子邮件也可以。它似乎只是导致问题的 SQL Server 的 ODBC 连接。我们的两个 SQL Server 都会发生错误。我们搜索了谷歌,但还没有找到解决方案。有什么我们可以尝试诊断问题的方法吗?有什么解决办法吗?

更新:

我们在服务器或客户端上都没有内部防火墙。我们通过服务器的 dns 名称通过 TCP/IP 连接(也尝试过 IP 地址)。

一台服务器装有 Windows 2003 SP2,而另一台则没有。

奇怪的是,它多年来一直运行良好,但突然间这些错误正在发生。很长一段时间以来,这些服务器上没有任何变化。这使我们相信这是一个糟糕的开关,但这似乎不太可能,因为没有其他任何东西(电子邮件、电话、vnc、文件服务器等)都可以正常工作。

4

4 回答 4

2

查看此 Microsoft 知识库文章。

安装 Windows Server 2003 SP2 后出现一些问题

我还建议您切换到 OLE DB 提供程序。以我的经验,它比 ODBC 更快,也更可靠。

连接字符串

向下滚动到:SQL Native Client OLE DB Provider

于 2008-12-18T19:22:17.330 回答
0

您是否使用非默认实例?或者你有内部防火墙?

我们更改为“server.fqdn.tld\instance,port”以避免来自内部防火墙后面的客户端的这种确​​切 (IIRC) 间歇性连接问题。

只有 SQL 连接受到影响。

于 2008-12-18T19:37:25.893 回答
0

我们从来没有弄清楚为什么会发生这种情况。我们将服务器升级到 SQL Server 2008 并且错误消息停止了。

于 2009-09-28T20:18:29.703 回答
0

我最近遇到了一个非常相似的问题并将其发布在这里

ScottE 找到了解决方案。

于 2010-06-23T17:53:00.187 回答