ПРОБЛЕМА
Вызов веб-службы asp, размещенной поставщиком услуг Интернета, из нашей службы WCF, размещенной на Windows 2008 Server, показывает тайм-аут / отсутствие ответа от веб-службы.
ДИАГНОСТИКА
Используя сетевой монитор Windows для захвата пакетов и изоляции пакетов, отправленных веб-сервисом, я вижу:
Рукопожатие TLS привет
TCP передача
Повторная передача TCP
Повторная передача TCP
Повторная передача TCP
Повторная передача TCP
Повторная передача TCP
Коэффициент масштабирования переговоров по TCP
Масштабный коэффициент TCP не поддерживается
Кажется, что это не показывает ответа на полезные данные TCP, что подразумевает блокировку IP.
РЕШЕНИЕ
После обращения к поставщику веб-услуг они предположили, что IP-блокировка отсутствует, и эта проблема характерна для Microsoft Windows 2008 Server, динамического размера кадра TCP и их конкретных балансировщиков нагрузки.
Я считаю, что после некоторых дальнейших исследований нижеследующее разрешится.
Чтобы увидеть текущую конфигурацию параметра autoTuningLevel, выполните следующие действия:
Нажмите Пуск
щелкните Все программы, а затем щелкните Стандартные.
Щелкните правой кнопкой мыши Командную строку и выберите Запуск от имени администратора.
Если вам будет предложено ввести пароль администратора или подтверждение, введите пароль или нажмите «Продолжить».
В командной строке введите следующую команду и нажмите клавишу ВВОД: netsh interface tcp show global
Значение параметра autoTuningLevel отображается как уровень автонастройки окна приема.
Мы ожидаем, что это будет нормально
В командной строке введите следующую команду и нажмите клавишу ВВОД: netsh interface tcp set global autotuninglevel = disabled
В следующем списке представлены все возможные значения параметра autoTuningLevel:
/ disabled: устанавливает для окна приема значение по умолчанию.
/ highrestricted: позволяет окну приема увеличиваться за пределы значения по умолчанию, но делает это очень консервативно.
/ limited: позволяет окну приема увеличиваться за пределы значения по умолчанию, но ограничивает такой рост в некоторых сценариях.
/ normal: позволяет расширять окно приема для соответствия большинству сценариев.
/ экспериментальный: позволяет увеличить окно приема для соответствия экстремальным сценариям.
Примечание. Экспериментальное значение может снизить производительность в обычных сценариях. Это значение следует использовать только в исследовательских целях.
ВОПРОС
Просто ищите дополнительную информацию по этой проблеме из независимого источника.
Надеюсь, что в какой-то момент он будет исправлен MS.
Спасибо, Скотт
Пара вещей:
Это не проблема, требующая исправления, потому что это не ошибка. Это улучшение функции.
Балансировщики нагрузки поставщиков веб-сервисов не поддерживают эту функцию, поэтому настоящая проблема в том, что они ее не поддерживают, а не в том, что Microsoft ее реализовала.
Если решение состоит в том, чтобы отключить эту функцию на сервере из-за текущих балансировщиков нагрузки, то это решение.
Концепция масштабирования TCP Windows была представлена в RFC 1072 еще в 1988 году и усовершенствованный в RFC 1323 еще в 1992 году.
Больше информации здесь: