IIS 6 закрывает соединение - как сохранить его постоянным? - PullRequest
0 голосов
/ 24 января 2012

В моей компании есть два тестовых сервера, смоделированных по конфигурации заказчика,

  • , один с Windows Server 2003 SP2, IIS 6 и Tomcat 5.5,
  • , один с Windows Server 2008 R2, IIS7 и Tomcat 6.

Оба IIS настроены на использование проверки подлинности Windows и имеют фильтр ISAPI для Tomcat.

На компьютере IIS 6 сервер закрывает каждое аутентифицированное http-соединение с помощьюотправив заголовок «Соединение: закрыть».На машине IIS 7 сервер использует постоянные соединения и отправляет заголовок «Persistent-Auth: true».У клиента с IIS 6 такое же поведение при закрытии соединения, что и у нашего тестового сервера, который утраивает число сетевых обращений из-за аутентификации NTLM.

Почему сервер IIS 6 закрывает соединения и как я могу это сделатьиспользовать постоянные соединения?

У меня есть доступ администратора RDP к обоим серверам, и я с радостью предоставлю любую полезную информацию и проведу эксперименты.

ОБНОВЛЕНИЕ:

Я обнаружил, что проблема частично вызвана устаревшей версией фильтра ISAPI (isapi_redirect.dll).После обновления этого фильтра до 1.2.32 я больше не получаю заголовок «Connection: close» для html-страниц.Однако я все еще получаю его, когда клиентский апплет обращается к службе, которая возвращает сериализованные объекты Java.

1 Ответ

1 голос
/ 08 февраля 2012

Я обнаружил, что проблема не имеет ничего общего с аутентификацией.Сервлет Tomcat использует кодированную кодированную передачу для своего ответа, и фильтр ISAPI не был настроен для его обработки, что, похоже, заставляет IIS 6 закрывать соединение.IIS 7, похоже, собирает фрагменты ответов и отправляет вызывающему весь ответ без чанков.

После обновления до версии 1.2.32 и включения кодирования по чанкам с использованием свойства enable_chunked_encoding фильтра ISAPI, как описано в справочном руководстве , соединения больше не закрыты.

...