天天看點

WCF中自定義消息編碼器:壓縮編碼器的使用

通過抓包知道WCF在送出、傳回資料的時候大多使用XML進行資料互動,如果傳回DataTable那麼這些資料将變得很大,通過查詢找到一個對資料壓縮的方法:

<a href="http://msdn.microsoft.com/zh-cn/library/ms751458(v=vs.110).aspx">http://msdn.microsoft.com/zh-cn/library/ms751458(v=vs.110).aspx</a>

新增項目GZipEncoder,GzipEncoder中增加三個檔案 :

WCF中自定義消息編碼器:壓縮編碼器的使用

GZipMessageEncoderFactory.cs

  GZipMessageEncodingBindingElement.cs

  GZipMessageEncodingBindingElementImporter.cs

  WCF Server 和 Client 都引用項目 GZipEncoder,然後修改config檔案

Server web.config 中增加:

  用戶端的app.config 配置:

  這樣就完成了WCF的資料壓縮,其他代碼都不用動,直接可以使用

      通過抓包看到Send和Recv的資料都為 application/x-gzip 格式

WCF中自定義消息編碼器:壓縮編碼器的使用
WCF中自定義消息編碼器:壓縮編碼器的使用

 另外出現第一次調用WCF很慢的解決方法是将 useDefaultWebProxy 這個屬性改成false,不讓它找代理。這樣就會在程式第一次調用WCF的時候快很多。

WCF中自定義消息編碼器:壓縮編碼器的使用