Моя компания только начала использовать TMG 2010 в качестве нашего брандмауэра / веб-прокси на сервере Windows 2008 R2. После перемещения все подключения к SQL Server закрываются примерно через 30 секунд.
Например:
Запустите запрос еще раз, и он завершится ошибкой со следующей ошибкой
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 не осознает, что существующее соединение было закрыто.
Просматривая журналы 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
Для справки я пытаюсь подключиться к SQL Azure. Однако я подключил свой ноутбук напрямую к коммутатору (в обход TMG) и могу без проблем подключиться к тому же экземпляру SQL Azure. Исходя из этого, я не верю, что проблема связана с SQL Azure или чем-то вышестоящим от TMG.
Я нашел несколько статей, обвиняющих настройки TCP Chimney, но, похоже, это применимо к Windows Server 2003, и в любом случае я безуспешно пытался отключить его.
Любая помощь в этом будет принята с благодарностью.
Изменить: оказалось, что TMG устарел, я обновил его до SP2, но проблема все еще сохраняется.
Изменить: я обнаружил максимальный тайм-аут подключения в настройках веб-прокси, который в настоящее время установлен на 1800 секунд. Я даже не уверен, имеет ли веб-прокси отношение к sql-соединениям более 1433, но, поскольку у меня заканчиваются идеи, я полностью отключил прокси. К сожалению, это не помогло.
Есть ли еще одно место для тайм-аутов простоя tcp, которое мне не хватает?
Наконец-то мне удалось решить проблему с помощью поддержки Microsoft. Похоже, что пока сервер TMG получал пакеты проверки активности от SSMS, TMG не пересылал эти пакеты в SQL Azure.
Я написал сообщение в блоге о проблеме полностью со сценариями vb, которые Microsoft предоставила мне для запуска.
http://www.danrowlands.co.uk/2012/03/sql-connections-timing-out-with-tmg.html