2011-09-30 16 views
5

Ho un servizio Web WCF RESTful scritto in C# utilizzando .NET 4.0 e vorrei che le risposte fossero compresse usando GZip o deflate. (Potrei dover supportare anche la compressione per le richieste, ma non è ancora un requisito). Verrà distribuito come servizio Windows, ad esempio il servizio WCF auto-ospitato, poiché l'hosting IIS non è un'opzione.Come abilitare la compressione GZip in un webservice RESTful WCF self-hosted?

Le mie ricerche sono finite in breve tempo. La maggior parte degli hit sono sia per attivare la compressione in IIS o scrivere un codificatore di messaggi personalizzato per un servizio basato su SOAP, né per il mio scenario.

Se hai qualche indicazione su come farlo, sarebbe molto apprezzato!

risposta

1

È davvero necessario andare per il percorso del codificatore personalizzato (esempio con codice su http://msdn.microsoft.com/en-us/library/ms751458.aspx) se si desidera eseguire la compressione GZip in uno scenario self-hosted (su 4.5 sembra che ci sia il supporto per la compressione sulla codifica binaria, per l'annuncio allo MSDN WCF Forums, ma non esiste per la versione 4.0). Perché il codificatore personalizzato non funziona per il tuo scenario?

+0

Grazie per aver risposto subito. Non so per certo che il codificatore personalizzato non sia la strada da percorrere, ma l'esempio che hai collegato è un servizio SOAP e non ero abbastanza sicuro su come modificarlo per un servizio RESTful WCF. Ne darò un'altra occhiata. –

+0

È possibile creare un'istanza di GZipMessageEncodingBindingElement passando ad esso un elemento di collegamento di codifica esistente: se si passa a WebMessageEncodingBindingElement (che non è utilizzato per SOAP), anche il proprio endpoint che utilizza GZip non utilizzerà SOAP. – carlosfigueira

Problemi correlati