Сжатиё
От: akasoft Россия  
Дата: 03.02.07 18:53
Оценка: 3 (1)
#Имя: FAQ.janus.gzip
Здравствуйте, alife.hpp, Вы писали:

AH>Не смотря на примение антибиотиков сжатие не работает (rev 669)


Решение для ревизии 652+. До этой ревизии сжатие управлялось только из настроек приложения.

Технический момент

Сжатые данные отдаются сервером, если указан заголовок Accept-Encoding. В ответ на него сервер выставляет заголовок Content-Encoding.

вход (от клиента)
Accept-Encoding: gzip, deflate

выход (к клиенту)
Content-Encoding: gzip
или
Content-Encoding: deflate


Включение сжатия

Чтобы в Янусе включить сжатие, необходимо

  1. Запустить Янус, перейти в Сервис — Настройки приложения, раздел 3. Синхронизация — Использовать сжатие — поставить "да".
  2. Закрыть Янус, перейти к файлу Janus.exe.config и проверить наличие выделенного жирным элемента, в случае отсутствия добавить его.

        <system.web>
            <webServices>
                <soapExtensionTypes>
                    <add
                        type="Rsdn.Janus.ProgressSoapExtension, Janus"
                        priority="1" group="0" />
                    <add
                        type="Rsdn.Janus.CompressSoapExtension, Janus"
                        priority="2" group="0" />
                </soapExtensionTypes>
            </webServices>
        </system.web>


  3. Запустить Янус, теперь он будет использовать сжатие.


Выключение сжатия

  1. Запустить Янус, перейти в Сервис — Настройки приложения, раздел 3. Синхронизация — Использовать сжатие — поставить "нет".
  2. Закрыть Янус, перейти к файлу Janus.exe.config и проверить наличие выделенного жирным элемента, в случае наличия удалить его.
  3. Запустить Янус, теперь он не будет использовать сжатие.

Известные проблемы

Некоторые прокси-сервера режут заголовки сжатия специально, чтобы анализировать контент и чего-то с ним делать. Ну, просто разработчики этих прокси съэкономили на поддержке сжатия, но предоставили офигенно полезный механизм контроля за контентом. Тут поделать нечего.

Для некоторых прокси-серверов возможность работы со сжатием открывается только после установки патчей либо манипуляций с реестром.

Типичная проблема — это попадание URI веб-службы "http://rsdn.ru/ws/Janus.asmx" под маску *anus*.
Тут выход прост, надо добавить URI в белый либо доверенный список прокси-сервера.

С ревизии 652 типичной проблемой стало отсутствие в Janus.exe.config строчек, ответственных за активацию SOAP-расширения для сжатия. Т.е. человек ставил "использовать сжатие" в настройках, Янус заказывал у веб-службы сжатый контент, но распаковывать его было некому.

Если отсутствует Janus.exe.config

В общем-то, такого быть не должно, но на всякий случай он полностью приведен ниже, и содержит поддержку индикации прогресса при синхронизации и сжатия.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <appSettings>
        <add key="Janus.WebService.JanusSvc" value="http://rsdn.ru/ws/Janus.asmx" />
    </appSettings>


    <system.web>
        <webServices>
            <soapExtensionTypes>
                <add
                    type="Rsdn.Janus.ProgressSoapExtension, Janus"
                    priority="1" group="0" />
                <add
                    type="Rsdn.Janus.CompressSoapExtension, Janus"
                    priority="2" group="0" />
            </soapExtensionTypes>
        </webServices>
    </system.web>

</configuration>
... << RSDN@Home 1.2.0 alpha rev. 673>> SQL Express 2005
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.