我在Windows Azure上托管了一个.NET 3.5 Web应用程序,它公开了几个WCF端点(SOAP和REST)。终端通常接收数据量比服务数据多100倍(上传大量数据,下载的数据少得多)。
因此,我愿意利用HTTP GZip压缩,但不是从服务器的角度来看,而是从客户端的角度来看,发送压缩的请求(返回压缩的响应会很好,但不会带来太大的收益)。
以下是客户端用于激活WCF的小C#片段:
var binding = new BasicHttpBinding();
var address = new EndpointAddress(endPoint);
_factory = new ChannelFactory<IMyApi>(binding, address);
_channel = _factory.CreateChannel();
知道如何调整行为以便可以进行压缩的HTTP请求吗?
答案 0 :(得分:2)
如果您想使用商业广告,请尝试this。它为请求和响应提供基于标准的HTTP压缩。我不确定Azure是否支持解压缩压缩请求,如果不支持,那么您也可以在Azure上使用它来提供解压缩。以下是根据需要修改的绑定:
using Noemax.WCFX.Channels;
var binding = new BasicHttpBinding();
var address = new EndpointAddress(endPoint);
ContentNegotiationBindingElement contentNegotiation = new ContentNegotiationBindingElement();
contentNegotiation.CompressionMode = SmartCompressionMode.Optimistic;
binding = contentNegotiation.PlugIn(binding);
_factory = new ChannelFactory<IMyApi>(binding, address);
_channel = _factory.CreateChannel();