这对我来说是一个重大问题。在早期,Web 服务客户端可以简单地使用 EnableDecompression = true 并且一切都很好,但是为什么微软没有添加类似 WCF 的东西呢?
我真的需要来自我的 WCF 服务的 gzip 压缩响应(并且它们需要是 http ......遗留问题,像往常一样......你知道......)。
这对我来说是一个重大问题。在早期,Web 服务客户端可以简单地使用 EnableDecompression = true 并且一切都很好,但是为什么微软没有添加类似 WCF 的东西呢?
我真的需要来自我的 WCF 服务的 gzip 压缩响应(并且它们需要是 http ......遗留问题,像往常一样......你知道......)。
查看这篇博客文章,它基本上最终建议:
结论
我现在放弃了这个,因为我们还需要支持不设置 AcceptEncoding 标头的客户端,所以我真的需要能够读取请求中的 http 标头并设置“上下文”值来(不)压缩响应,我还没有找到还没有如何针对多个并发请求执行此操作。我真的建议使用 IIS http 压缩,而不是像这里描述的那样尝试使用 WCF hacking 来做到这一点!
Codeplex 上还有一个 WCF Extensions 项目,它有一个WCF 压缩通道——也许这就是你要找的。
最划算的是使用binaryMessageEncoding
in WCF 而不是 textMessageEncoding(这是 HTTP 绑定的默认设置)。这将要求您创建一个自定义的基于 http 的绑定,并且会使您的服务与其他基于 http 的客户端不兼容,而不是也使用相同的自定义绑定配置的 .NET 客户端。