我的公司刚刚开始在Windows 2008 R2服务器上使用TMG 2010作为我们的防火墙/ Web代理。 自移动以来,到SQL Server的所有连接都在大约30秒后closures。
例如:
再次运行查询,它将失败,并出现以下错误
A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.
运行超过30秒的查询也会发生同样的问题。
我假设在步骤3中的错误是因为SSMS不知道现有的连接已closures。
查看TMG日志,我可以看到SQL连接正在closures,具有以下信息:
Closed Connection Log type: Firewall service Status: Unspecified error Rule: Internal Internet Access Source: Internal (xx.xx.xx.xx) Destination: External (xx.xx.xx.xx:1433) Protocol: Microsoft SQL (TCP) The result code is: 0x80004005
对于我试图连接到SQL Azure的背景信息。 不过,我已将笔记本电脑直接连接到交换机(绕过TMG),并且可以连接到相同的SQL Azure实例,而不会出现任何问题。 基于这个我不相信问题是与SQL Azure或TMG上游的任何东西。
我发现一些文章指责TCP烟囱设置,但这似乎适用于Windows Server 2003,无论如何我试图禁用它没有成功。
任何帮助,将不胜感激。
编辑:事实certificate,TMG是过时的,我已经升级到SP2,但问题仍然存在。
编辑:我已经find了一个最大的连接超时下的networking代理设置,目前设置为1800秒。 我甚至不确定Web代理是否与1433上的sql连接相关,但是由于缺乏创意,我完全禁用了代理。 不幸的是,这并没有帮助。
是否有另一个空闲tcp超时位置,我错过了?
我终于设法通过Microsoft支持来解决这个问题。 看起来TMG服务器正在接收来自SSMS的保持活动的数据包,而TMG并没有将这些数据包转发到SQL Azure上。
我已经用微软给我的vb脚本写了一篇关于这个问题的博客文章。
http://www.danrowlands.co.uk/2012/03/sql-connections-timing-out-with-tmg.html