0

我们有一个连接到 SQL Server 2008 R2 数据库的 WCF 数据服务。当服务尝试从数据库访问数据时,连接在连接超时值之前超时,并引发超时异常。

这是连接字符串:

Data Source=XXXX;Initial Catalog=XXXX;MultipleActiveResultSets=False;
Connection Timeout=80;Integrated Security=false;User ID=XXX;Password=XXX

在此连接字符串中,即使我们将 80 秒作为Connection Timeout,连接也会在 700 毫秒左右超时并抛出异常

System.Data.SqlClient.SqlException (0x80131904):超时已过期。
在操作完成之前超时时间已过或服务器没有响应。

这仅发生在某些查询上。

任何帮助表示赞赏。

4

3 回答 3

3

这不是ConnectionTimeout导致错误的原因;这是CommandTimeout. 另请参阅此问题

CommandTimeout因此,解决方案是为更昂贵的查询设置更高的值。

于 2012-11-15T09:31:48.593 回答
0

这种类型的超时可能有三个原因;

  1. 某处出现了僵局

  2. 数据库的统计信息和/或查询计划缓存不正确

  3. 查询太复杂,需要调优

取自以下链接

超时已过。在操作完成之前超时时间已过或服务器没有响应。该语句已终止

尝试优化这里提到的查询

于 2012-11-15T09:28:27.603 回答
0

我有同样的问题,谷歌把我带到了这里。

超时已过。在操作完成之前超时时间已过或服务器没有响应。

就我而言,数据库服务器上尚未打开 mssql 防火墙端口(默认 = 1433 TCP)。

于 2013-12-09T10:20:06.923 回答