Сжатие GZip с WCF размещается на IIS7

Все, что касается меня вопрос являются ansered в РЕДАКТИРОВАНИИ 2. Хотя это - только частичное решение стороны IIS проблемы, это - то, что я искал.


Таким образом, я собираюсь добавить свой запрос к небольшому океану вопросов на предмете.

Я пытаюсь включить сжатие GZip на больших ответах мыла от сервиса WCF. До сих пор я следовал инструкциям здесь и во множестве других мест для включения динамического сжатия на IIS. Вот мой раздел dynamicTypes от applicationHost.config:


    
    
    
    
    
    
    
    

И также:


Хотя я не так ясен на том, почему это необходимо.

Бросил некоторые дополнительные типы пантомимы там на всякий случай. Я реализовал IClientMessageInspector для добавления Принятый закодированного: gzip, выкачайте к HttpRequests моего клиента. Вот пример заголовка запроса, взятого от скрипача:

POST http://[omitted]/TestMtomService/TextService.svc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Accept-Encoding: gzip, deflate
Host: [omitted]
Content-Length: 542
Expect: 100-continue

Теперь, это не работает. Нет просто никакого случая сжатия, независимо от того, что размер сообщения (попробовал до 1.5 МБ). Я посмотрел на это сообщение, но не столкнулся с исключением, как он описывает, таким образом, я не попробовал реализацию CodeProject, которую он предлагает. Также я видел много других реализаций, которые, как предполагается, заставляют это работать, но не могут понять их (например, кодер MSDN GZip). Почему я должен был бы реализовать кодер или решение проекта кодом? Разве IIS не должен заботиться о сжатии?

Таким образом, что еще я должен сделать, чтобы заставить это работать?

Joni

Править: Я думал, что привязку WCF могло бы стоить отправить, хотя я не уверен, релевантны ли они (это от клиента):



    
    
      
      
      
        
        
      

  
  


  
    
      
    
  


  
    
  

    
  

РЕДАКТИРОВАНИЕ 2: Хорошо для кого-либо еще в этой таинственной ситуации, у меня есть частичное решение. Т.е. я заставил IIS7, по крайней мере, сжимать сообщения мыла от сервиса (хотя я теперь получаю исключение на клиенте, но для этого было несколько отправленных решений). Проблема состояла в том, что DynamicCompressionModule не был установлен на моем сервере. "Установка" его на самом деле, для меня, предназначенный просто добавление этой строки для раздела applicationHost.config:


(Принятие dll существует в том каталоге, который в моем случае это сделало.) И затем добавление модуля через раздел Modules IIS7 для веб-сайта или сервера.

24
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

Попробуйте добавить 'application / soap + xml; charset = utf-8 'как динамический тип в applicationHost. Добавление этой кодировки помогло мне включить сжатие некоторых ответов JSON от моего обработчика http.

14
ответ дан 29 November 2019 в 00:13
поделиться

Лучше всего оценить конкретный тип mime, с которым у вас проблемы (например, Fiddler), и убедиться, что он включен в applicationHost.config. Если сжатие установлено и настроено правильно, трассировка неудачных запросов даст вам знать, что сжатие не было выполнено, с диспозицией "NO_MATCHING_CONTENT_TYPE".

0
ответ дан 29 November 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: