本文内容
适用于: SQL Server
注意
在开始故障排除之前,请查看先决条件并核对清单。
超时错误意味着特定操作所用的时间比需要的时间长。 客户端应用程序停止操作(而不是无限期地等待),这可能会阻止其他操作并使应用程序暂停运行。 本文提供连接到 SQL Server 时出现的“命令超时”和“连接超时”错误的解决方法。
验证超时已过期错误
遇到“超时已过期”错误时,可能会收到下面的一条或多条错误消息:
注意
安装 .NET Framework 4.5 或更高版本时,将发生第二个和第三个错误。
确定超时已过期错误的类型
从连接的角度来看,你会遇到以下超时问题:
注意
可以通过代码、连接字符串或其他方法设置默认值。
在进行故障排除之前,请查看错误消息的完整调用堆栈以确定错误类型。
排除超时已过期错误
如果连接最终成功,则说明是网络问题。 需要与网络管理员合作来解决此问题。 问题解决后,可以在应用程序中还原为默认设置。
注意
增加应用程序中的连接超时是一种可能的方法,但不是长期解决方案。 这是因为在尝试连接到数据源时,连接会很快发生(通常在几毫秒内)。
错误的典型原因和解决方案
下表列出了超时过期错误的典型原因和解决方案。 有关更多提示和建议,请参阅疑难解答:超时已过期。
典型原因解决方案
服务器名称输入有误。
使用正确的服务器名称重试。
服务器上的 SQL Server 服务未运行。
启动 SQL Server 数据库引擎的实例。
数据库引擎实例的 TCP/IP 端口被防火墙阻止。
配置防火墙以允许访问数据库引擎。
数据库引擎未侦听端口 1433。 这是因为端口已更改,或者它不是默认实例,并且 SQL Server Browser 服务未运行。
启动 SQL Server Browser 服务,或使用 Sqlcmd -S ,
命令指定要连接的 TCP/IP 端口号。 在错误日志中,查找 SQL Server 正在侦听的端口号。
SQL Server Browser 服务正在运行,但 UDP 端口 1434 被防火墙阻止。
配置防火墙以允许访问服务器上的 UPD 端口 1434,或指定要连接的 TCP/IP 端口号。
客户端和服务器未配置为使用相同的网络协议。
使用 SQL Server 配置管理器确保服务器和客户端计算机至少有一个共同已启用的协议。 例如,如果客户端使用 TCP/IP 套接字进行连接,但 SQL Server 只侦听命名管道,则无法建立连接。
网络无法将服务器名称解析为 IP 地址,这可以通过使用 ping 或 telnet 程序进行测试。
修复网络上的计算机名称解析问题或使用 IP 地址连接到服务器,这不是 SQL Server 问题。 有关帮助,请参阅 Windows 文档或与网络管理员联系。 使用以下命令测试连接:
telnet [
telnet
如果使用 IP 地址有效,但服务器名称无效,则这是名称解析问题。
网络无法使用 IP 地址进行连接,这可以通过使用 ping、telnet 或 tracert 程序进行测试。
修复网络上的 TCP/IP 问题 - 这不是 SQL Server 问题。 有关帮助,请参阅 Windows 文档或与网络管理员联系。
有关更高级的网络疑难解答,请参阅 0300 间歇性或周期性网络问题。
另请参阅