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?
-
Are you pushing large data up in your request? If not, compression might cost you more than it will gain you. – Jason Jackson Dec 16 '08 at 00:17
-
Yes, we are trying to push up about 150MB of data in about 100 batches of 1.5MB... – horatio Dec 16 '08 at 00:32
2 Answers
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.
- http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapextension.aspx
- http://msdn.microsoft.com/en-us/magazine/cc164007.aspx
- SOAP Message Modification Using SOAP Extensions
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.

- 25,526
- 6
- 73
- 100
-
It looks like your 3rd link is just being redirected to http://searchwindevelopment.techtarget.com/?id=SOAPExtensions – Zack Aug 07 '14 at 16:10
-
@Zack - Yeah, the answer is almost six years old (!) and suffered from link rot. I replaced the bad link with a Microsoft article. Beware, SOAP extensions are not part of WCF and are therefore largely irrelevant. – Corbin March Aug 07 '14 at 17:53
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.

- 137
- 3
- 12
-
1Archived version: http://web.archive.org/web/20060507182910/http://www.infosrama.com/soapcompression.htm – user423430 Aug 10 '11 at 20:37