Я исследовал проблемы соединения между своим веб-сервером (Web01) и сервером базы данных (Database01). Моя текущая установка:
Web01 - два NICs, один внешний (firewalled), один внутренний (не firewalled).
Database01 - Та же конфигурация как выше.
Эти два сервера связываются при использовании частного NIC, таким образом, профиль брандмауэра отключен. То, что я нахожу, то, что я получаю две ошибки в Web01:
WEB01: A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 - Physical connection is not usable)
или
WEB01: The wait operation timed out
Это не последовательно, хотя они, более вероятно, произойдут, когда я выполню проверку (через Xenu) на Web01 для проверки через новый веб-сайт.
На Database01 я определил ряд сообщений из Windows Filtering Platform:
DATABASE01: The Windows Filtering Platform has blocked a packet.
Исследуя в это, это - тихий Фильтр Предотвращения Сканирования портов, встроенный в Windows Firewall. Эта функция работает независимо от того, что Частный профиль (для частного NIC) выключен.
Намерение этой функции, должен прервать запросы на порты, где никакой слушатель не присоединяется, и отклоните пакет.
Проблема с этим, рассматриваемый порт, порт SQL-сервера по умолчанию, 1433
и SQL-сервер слушает.
Таким образом, мой вопрос был бы, под тем, что другие обстоятельства будут пакеты отбрасывания брандмауэра этот путь.
Другие проблемы/примечания комментариев / возможные проблемы/примечания:
server=database01
, но устранить любые потенциальные проблемы с сервисом Браузера SQL-сервера, я изменил строку подключения к server=tcp:database01,1433
осуществлять соединение TCP используется (таким образом, оно не потрудилось пробовать общую память или именованные каналы), и указали порт точно (таким образом, оно не должно запрашивать сервис браузера сначала к идентификационным данным правильный порт).sqlserver.exe
слушает на порте 1433
использование netstat -anob -p tcp
управляйте и видьте, что это связало следующим образом:netstat-anob-p tcp
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 1896
TCP 192.168.3.2:1433 192.168.3.2:49274 ESTABLISHED 1896
В вышеупомянутых результатах, 192.168.3.2 частный IP для Database01, и 192.168.3.1 частный IP для Web01, с внешним портом 49274 динамично присваиваемый пулом соединения ASP.NET.
Я попытался устранить как можно больше, но я все еще не могу определить корневую проблему:
Почему Windows Firewall отбрасывает пакеты для порта, который слушается на?
Web01: Windows Server 2012 R2 Стандартные 64 бита
Database01: Windows Server 2012 64bit Стандарт SP1 SQL Server 2012 года
Решением этой проблемы стала функция под названием Разгрузка TCP. Я не уверен, потому что я работаю в виртуализированной среде или нет, но разгрузка TCP вызывала отбрасывание пакетов. Когда эта функция отключена , отбрасываемые пакеты, кажется, исчезают.
TCP Offloading снимает нагрузку обработки сетевого ввода-вывода с CPU, выгружая его на NIC. 12119] Мне интересно, если бы я работал на аппаратной среде, если бы эта проблема по-прежнему возникала.
http://www.rackspace.com/knowledge_center/article/disables-tcp-offloading-in-windows-server-2012