威胁管理网关 2010 正在终止 SQL 连接

Dan*_*nds 5 sql-server microsoft-ftmg-2010

我的公司刚刚开始在 Windows 2008 R2 服务器上使用 TMG 2010 作为我们的防火墙/Web 代理。自移动以来,与 SQL Server 的所有连接都在大约 30 秒后关闭。

例如:

  1. 从 SSMS 运行查询将成功运行
  2. 等待 30+ 秒
  3. 再次运行查询,它将失败并显示以下错误

    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.
    
    Run Code Online (Sandbox Code Playgroud)
  4. 再次运行查询,它将正常工作。

运行时间超过 30 秒的查询也会出现同样的问题。

我假设第 3 步中的错误是因为 SSMS 没有意识到现有连接已关闭。

查看 TMG 日志,我可以看到 SQL 连接正在关闭,其中包含以下信息:

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
Run Code Online (Sandbox Code Playgroud)

对于背景信息,我正在尝试连接到 SQL Azure。但是,我已将笔记本电脑直接连接到交换机(绕过 TMG),并且可以毫无问题地连接到同一个 SQL Azure 实例。基于此,我认为问题不在于 SQL Azure 或 TMG 上游的任何内容。

我发现一些文章指责 TCP 烟囱设置,但这似乎适用于 Windows Server 2003,无论如何我尝试禁用它但没有成功。

对此的任何帮助将不胜感激。

编辑:事实证明 TMG 已经过时了,我已将其升级到 SP2,但问题仍然存在。

编辑:我在网络代理设置下发现了最大连接超时,目前设置为 1800 秒。我什至不确定 Web 代理是否与 1433 上的 sql 连接相关,但由于我的想法不多,我完全禁用了代理。不幸的是,这没有帮助。

我缺少的空闲 tcp 超时还有其他位置吗?

Dan*_*nds 1

在微软支持的帮助下,我终于成功解决了这个问题。看起来,当 TMG 服务器从 SSMS 接收保持活动数据包时,TMG 并未将这些数据包转发到 SQL Azure。

我已经写了一篇关于该问题的博客文章,其中包含 Microsoft 提供给我运行的 vb 脚本。

http://www.danrowlands.co.uk/2012/03/sql-connections-timing-out-with-tmg.html