2011-09-30 9 views
5

Tengo un servicio web RESTful WCF escrito en C# utilizando .NET 4.0, y me gustaría que las respuestas se comprima con GZip o desinflar. (También podría necesitar compatibilidad con la compresión para las solicitudes, pero eso aún no es un requisito). Se implementará como un servicio de Windows, es decir, un servicio WCF autohospedado, ya que el alojamiento IIS no es una opción.¿Cómo habilitar la compresión GZip en un servicio web RESTful WCF autohospedado?

Mis búsquedas hasta ahora han sido cortas. La mayoría de los hits son para activar la compresión en IIS o escribir un codificador de mensajes personalizado para un servicio basado en SOAP, ninguno o que se ajustan a mi escenario.

Si tiene alguna sugerencia de cómo hacer esto, sería muy apreciado.

Respuesta

1

Realmente necesita ir a la ruta del codificador personalizado (ejemplo con código en http://msdn.microsoft.com/en-us/library/ms751458.aspx) si desea hacer la compresión GZip en un escenario auto-alojado (en 4.5 parece que hay soporte para la compresión en la codificación binaria, según el anuncio en el MSDN WCF Forums, pero no existe de fábrica para 4.0). ¿Por qué el codificador personalizado no funciona para su escenario?

+0

Gracias por responder de inmediato. No estoy seguro de que el codificador personalizado no sea el camino a seguir, pero la muestra a la que se vinculó es un servicio SOAP, y no estaba muy seguro de cómo modificarlo para un servicio WCF RESTful. Volveré a echarle un vistazo. –

+0

Puede crear una instancia de GZipMessageEncodingBindingElement que le pase un elemento de enlace de codificación existente; si pasa el WebMessageEncodingBindingElement (que no se usa para SOAP), entonces su punto final usando GZip tampoco usará SOAP. – carlosfigueira

Cuestiones relacionadas