Question

I have a webservice and client in c#/dotnet and I am using EnableDecompression to gzip compress the responses that I get from the web server. Is it possible to compress the requests as well?

Was it helpful?

Solution

SOAP extensions allow you to monkey with the SOAP stream on both the client and server. They're nice because you can leave your service code alone - manipulation occurs before a webmethod begins and after it ends. They work a lot like an HttpModule but can be included on the client/request side as well.

Other than that, the only option that comes to mind is manually serializing and compressing large SOAP elements as byte[], then manually decompressing and deserializing on the server (shudder...). The maintenance issues with this approach are likely prohibitive.

OTHER TIPS

I've found this tutorial on compressing SOAP messages in C#, using the SharpZipLib library and SOAP extensions:

Seems to garnish about a 30% compression, will be giving this a try today.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top