Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在自托管RESTful WCF Web服务中启用GZip压缩?_Wcf_.net 4.0_Compression_Wcf Rest - Fatal编程技术网

如何在自托管RESTful WCF Web服务中启用GZip压缩?

如何在自托管RESTful WCF Web服务中启用GZip压缩?,wcf,.net-4.0,compression,wcf-rest,Wcf,.net 4.0,Compression,Wcf Rest,我有一个使用.NET4.0用C#编写的RESTful WCF web服务,我希望使用GZip或deflate压缩响应。(我可能也需要支持请求的压缩,但这还不是一个要求)。它将部署为windows服务,即自托管WCF服务,因为IIS托管不是一个选项 到目前为止,我的搜索结果还不够。大多数点击要么是在IIS中打开压缩,要么是为基于SOAP的服务编写自定义消息编码器,这两者都不适合我的场景 如果您有任何关于如何做到这一点的建议,将不胜感激 如果您想在自托管场景中进行GZip压缩,您确实需要使用自定义编

我有一个使用.NET4.0用C#编写的RESTful WCF web服务,我希望使用GZip或deflate压缩响应。(我可能也需要支持请求的压缩,但这还不是一个要求)。它将部署为windows服务,即自托管WCF服务,因为IIS托管不是一个选项

到目前为止,我的搜索结果还不够。大多数点击要么是在IIS中打开压缩,要么是为基于SOAP的服务编写自定义消息编码器,这两者都不适合我的场景


如果您有任何关于如何做到这一点的建议,将不胜感激

如果您想在自托管场景中进行GZip压缩,您确实需要使用自定义编码器路由(代码为的示例)(在4.5上,根据上一次的公告,似乎有对二进制编码的压缩支持,但在4.0中它不存在)。为什么自定义编码器不适合您的场景?

感谢您立即响应。我不确定定制编码器是否可行,但您链接到的示例是一个SOAP服务,我不确定如何修改它以使其适用于WCF RESTful服务。我再看一看,您可以创建一个GZipMessageEncodingBindingElement实例,向其传递一个现有的编码绑定元素——如果您传递WebMessageEncodingBindingElement(它不用于SOAP),那么使用GZip的端点也不会使用SOAP。