How can I enable compression for POSTed data uploaded to a .NET WebService (SOAP, not WCF)? I thought it would be a simple matter of enabling dynamic compression in IIS but after enabling, it's only compressing the response, not the POST request.
I've added it as a Service Reference and I can't find any settings on the generated SOAPClient to enable compression of requests.
It seems I might be missing a configuration setting or code on the client side to compress the request before sending it to the server? Or is what I'm trying to do (GZipping POST data) not even supported?
Further info: I'm using .NET 4.0 on the client and server.
In the end, I used Wiktor Zychla's answer but came across a couple of bugs (also mentioned in the comments of his article). For completeness, I'll post my fixed version of the HttpCompression module here but the rest of the code (and implementation guidelines) you need are in Wiktor's article.
UPDATE:
I've actually had to stop using this code as it has a bug I can't fix (even with my improved version below). For many people behind proxy servers it comes up with an error which says "the magic number in the gzip header is incorrect" and I can't figure out how to fix this. I think it's because proxy servers decompress GZIP and this code doesn't allow for receiving both zipped and non-zipped responses in its current form.
I've blogged on that 4 years ago
http://netpl.blogspot.com/2009/07/aspnet-webservices-two-way-response-and.html
I wonder why you haven't found this by googling. Anyway, this should work for you, we have it working in a production environment for 4 years now.