天天看点

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中自定义消息编码器:压缩编码器的使用