среда, 8 сентября 2010 г.

Работа DocsVision 4.5 через ISA сервер

 В прошлом посте я описал случаи возникновения ошибки "Не удалось разобрать SOAP сообщение, полученное от сервера". В версии DocsVision 4.5 мы столкнулись с еще одним случаем, который связан с настройкой ISA сервера.

Началось все с инцидента, в котором была описана вроде бы типичная ситуация. Пользователь при входе получает данное сообщение об ошибке. Отличие было в том, что пользователь был внешний, а HTTP трафик от клиента (Навигатора) шел ко внутреннему серверу DocsVision через ISA сервер.

Исследование было начато по привычному плану: запущен HTTP отладчик Fiddler и открыт Навигатор. Далее при исследовании ответа от сервера (я то ожидал в логе увидеть что-нибудь вида ошибки 403) было обнаружено, что пакет приходит вполне обычный.
Тогда возник вопрос. Может сам пакет каким-либо образом поврежден, что не дает возможности правильно его интерпретировать. И точно. Выяснилось следующее.
В версии DocsVision 4.5. для оптимизации производительности и ускорения передачи данных по пути клиент-сервер, сервером DocsVision производится сжатие пакетов по протоколу deflate.
Таким образом в заголовке HTTP пакета установлен флаг "Content-Encoding: deflate" (см. верхний скриншот). Выявлено, что при прохождении данного пакета через ISA сервер происходит его изменение. Флаг "Content-Encoding: deflate" установлен, но при этом само содержимое пакета не сжато.

Анализируем содержимое пакета. Видно что его текст легко читается, т.е. он не сжат. Тем не менее Fiddler (и соответственно DocsVision тоже) читая значение флага показывает, что текст необходимо раскодировать.

Если эту операцию выполнить, то никакого текста не будет.
Таким образом клиентский компонент, который использует Навигатор пытается распаковать этот пакет, но в результате ничего не получает. Отсюда и ошибка.

На данный момент нам неизвестно, какие настройки ISA сервера влияют на это. Прошу специалистов в данной области дать ответ.

7 комментариев:

  1. хотелось бы самому узнать ответ как подружить Docvision 4.5 и TMG 2010 :) третью неделю бьюсь:(

    ОтветитьУдалить
  2. Vlad: некоторые подвижки в исследовании с нашей стороны есть. В ближайшее время будем смотреть работу на полигоне.
    Как вариант, в службе ТП есть модифицированный клиентский компонент, который не требует сжимать трафик у сервера. В этом случае HTTP пакеты не будут сжиматься, и будут проходить без проблем

    ОтветитьУдалить
  3. Тоже столкнулись с такой проблемой при переходе на 4.5, как временное решение на иса сервере создали tcp протокол с 80 портом и правило с ним от клиента до сервера docsvision. Ниже создали запрещающее правило по протоколу HTTP от клинетов до сервера docsvision. Таким образом обходится участия web-фильтра иса сервера при работе клиентов с docsvision

    ОтветитьУдалить
  4. У нас ISA 2006. У нас сильно распределённая организация и у нашего сервера DV публичный айпишник, и поэтому часть пользователей работает с серевером через NAT. Я нашёл более адекватный способ чем тот, который описал Igor. В "Обших параметрах HTTP-политики" есть элемент "Определите параметры сжатия HTTP" указываем для сервера DV принудительно "запросить сжатые данные" - после этого проблема исчезла.

    ОтветитьУдалить
  5. Андрей, а не могли бы Вы поподробнее рассказать как настроить ISA сервер?

    ОтветитьУдалить
  6. Проблема имеет место быть не только для ISA сервера

    В нашей конфигурации аналогичная проблема была вызвана антивирусом на ASA сервере Cisco. клиентская DLL-ка помогла решить проблему

    ОтветитьУдалить