我有 MS Access 2003 应用程序通过链接表连接到 SQL Server 2005。从昨天开始,当我打开链接表并将其打开一段时间(5 到 10 分钟)时,数据库就会断开连接并显示以下错误消息。这可能是什么问题?
信息:我没有更改 ODBC 超时的任何配置,并且我的数据库管理员说他也没有在服务器上更改任何内容。
我应该检查什么?
[Microsoft][ODBC SQL Server 驱动程序][TCP/IP 套接字]ConnectionRead(recv())。(#10054) [Microsoft][ODBC SQL Server 驱动程序][TCP/IP 套接字] 一般网络错误。请检查您的网络文档。(#11)
谢谢。
答案1
您是否在 Windows Server 2003 上运行 SQL Server?此错误 10054,意味着客户端连接重置了连接。
要解决此问题,请禁用 TCP Chimney Offload 功能。为此,请按照下列步骤操作:
- 单击“开始”,单击“运行”,键入 cmd,然后按 ENTER。
在命令提示符下,键入以下命令,然后按 ENTER:
Netsh int ip 设置烟囱已禁用
更多信息可以在这里找到:http://support.microsoft.com/kb/942861/en-us
答案2
我知道这个问题已经得到解答了,但是在花费了数周时间处理 Access 应用程序类似的间歇性 ODBC 连接错误之后,我想在这里补充一些内容。
需要检查的一件事是工作站上的 DNS 配置。就我而言,工作站配置为使用 Internet 提供商的 DNS,这意味着当工作站尝试按名称查找 SQL Server 时,它找不到它,因为 Internet 提供商没有我客户的 SQL Server 的 DNS 条目。当工作站更改为使用域控制器(这是一个具有 SBS 的单服务器小型办公室)作为主 DNS 时,从那时起一切都运行顺利。
但我始终无法弄清楚为什么问题是间歇性的(TCP/IP 上的 NETBIOS 被禁用,所以不可能是广播解决方案)。
答案3
检查是否有第三方应用程序控制 TCP/IP,如防病毒软件或“互联网访问管理器”/流量整形器。我在使用流量整形应用程序 (XFastLan/cFosSpeed) 时也遇到了同样的问题 - 它会在大约 15 秒后通过 OP 的错误消息终止 ODBC 连接。卸载该应用程序解决了这个问题。