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