如何在WCF 4.5中使gzip压缩工作

WCF 4.5支持GZIP,无需第三方库或手写扩展。 我通过TCP Binding得到它,但找不到通过HTTP绑定使其工作的方法。 我的wcf – 服务是自我托管在Windows服务中。

插件:我不允许使用IIS; 我无法切换到任何WCF替换。

这适用于gzip:

binding="customBinding" bindingConfiguration="tcpCompressionBinding" name="tcp" 

这就是我目前用于http的内容:

 binding="basicHttpBinding" bindingConfiguration="httpBinding" name="http" 

该文档并没有真正帮助我: http : //msdn.microsoft.com/en-us/library/dd456789.aspx 。

但是,据此,它应该工作:

从WCF 4.5开始,WCF二进制编码器增加了对压缩的支持。 使用CompressionFormat属性配置压缩类型。 客户端和服务都必须配置CompressionFormat属性。 压缩适用于HTTP,HTTPS和TCP协议。 如果客户端指定使用压缩但服务不支持它,则抛出协议exception,指示协议不匹配。 有关更多信息,请参阅选择消息编码器

根据要求,我将我的评论复制为答案:

“由于此属性仅在binaryMessageEncodingBindingElement上公开,因此您需要创建如下所示的自定义绑定以使用此function:

       

并接收压缩消息,因此必须在客户端和服务上的binaryMessageEncoding元素上配置compressionFormat属性。 “客户和服务都需要同意发送