我们有一个连接到SQL Server 2008 R2数据库的WCF数据服务。当服务尝试从数据库访问数据时,连接将在Connection Timeout值和抛出超时异常之前超时。
这是连接字符串:
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):超时 过期。
在完成之前经过了超时时间 操作或服务器没有响应。
仅在某些查询中发生这种情况。
感谢任何帮助。
答案 0 :(得分:3)
导致错误的不是ConnectionTimeout
;这是CommandTimeout
。另请参阅this question。
因此,解决方案是在查询更加昂贵的情况下为CommandTimeout
设置更高的值。
答案 1 :(得分:0)
这种类型的超时可能有三个原因;
某处出现僵局
数据库的统计信息和/或查询计划缓存不正确
查询过于复杂,需要调整
取自以下链接
尝试优化此处提到的查询
答案 2 :(得分:0)
我有同样的问题,谷歌把我带到了这里。
超时已过期。操作完成之前经过的超时时间或服务器没有响应。
就我而言,数据库服务器上尚未打开mssql防火墙端口(默认值= 1433 TCP)。