2013-10-22 84 views
0

在我们当前的项目中,我们使用Castle Windsor在.NET 4应用程序上配置WCF。由于我们来回移动的数据可能会增加,因此我们希望进行某种压缩(尤其是从客户端到服务器)。谷歌搜索带来了两种解决方案:使用.net 45的内置压缩支持(现在我们无法移动到.net 45,因为我们正式需要支持Windows XP),或者使用Microsoft提供的示例编码器( http://msdn.microsoft.com/en-us/library/ms751458.aspx)。由于自定义编码器选项看起来不那么糟糕,所以我想尝试一下,直到我们可以移动到.net 45.我唯一不知道的是,是否可以使用Castle Windsor配置此场景。Castle Windsor WCFFacility compression

对此的任何想法?

感谢 马库斯

+0

是的,应该是可以的。在Castle Windsor配置您的服务以使用GZip编码元素时,您可以自定义端点的绑定。 –

回答

0

后所涉及的WCF类的源代码的一些研究,我们能够找到我们需要一个很好的解决方案:目前,我们正在使用的WSHttpBinding我们的绑定。这有一个方法CreateBindingElements,它返回使用绑定元素的集合,并且可以被覆盖。所以我们只是从WsHttpBinding类派生出来的,并在返回之前将GZipMessageEncoding注入到集合中。

​​

剩下的唯一的事情就是使用这个类,而不是在温莎安装程序的WSHttpBinding类,和gzip压缩到位。

最好的问候 Markus