Cómo hacer que la compresión gzip funcione en WCF 4.5

Resuelto NickD asked hace 11 años • 1 respuestas

WCF 4.5 admite GZIP sin bibliotecas de terceros ni extensiones escritas a mano. Lo hice funcionar a través del enlace TCP, pero no puedo encontrar una manera de hacerlo funcionar a través del enlace HTTP. my wcf: el servicio está autohospedado en un servicio de Windows.

Complemento: no tengo permiso para usar IIS; No puedo cambiar a ningún reemplazo de WCF.

esto funciona con gzip:

binding="customBinding" bindingConfiguration="tcpCompressionBinding" name="tcp" 

y esto es lo que uso actualmente para http:

binding="basicHttpBinding" bindingConfiguration="httpBinding" name="http"

La documentación realmente no me ayuda: http://msdn.microsoft.com/en-us/library/dd456789.aspx .

Pero, según esto debería funcionar:

A partir de WCF 4.5, el codificador binario WCF agrega compatibilidad con la compresión. El tipo de compresión se configura con la propiedad CompressionFormat. Tanto el cliente como el servicio deben configurar la propiedad CompressionFormat. La compresión funcionará para los protocolos HTTP, HTTPS y TCP. Si un cliente especifica utilizar compresión pero el servicio no la admite, se genera una excepción de protocolo que indica una discrepancia de protocolo. Para obtener más información, consulte Elegir un codificador de mensajes.

NickD avatar Mar 28 '13 18:03 NickD
Aceptado

Según solicitud, copié mi comentario como respuesta:

"Dado que esta propiedad solo está expuesta en binarioMessageEncodingBindingElement, necesitarás crear un enlace personalizado como el siguiente para usar esta característica:

<customBinding>
  <binding name="BinaryCompressionBinding"> 
    <binaryMessageEncoding compressionFormat="GZip"/> 
    <httpTransport /> 
  </binding>
</customBinding> 

y recibir mensajes comprimidos y, por lo tanto, la propiedad compresiónFormat debe configurarse en el elemento binarioMessageEncoding tanto en el cliente como en el servicio. "Tanto el cliente como el servicio deben aceptar enviar

jpw avatar Apr 07 '2013 14:04 jpw