2013-10-22 148 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