通过抓包知道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中增加三个文件 :
GZipMessageEncoderFactory.cs
GZipMessageEncodingBindingElement.cs
GZipMessageEncodingBindingElementImporter.cs
WCF Server 和 Client 都引用项目 GZipEncoder,然后修改config文件
Server web.config 中增加:
客户端的app.config 配置:
这样就完成了WCF的数据压缩,其他代码都不用动,直接可以使用
通过抓包看到Send和Recv的数据都为 application/x-gzip 格式
另外出现第一次调用WCF很慢的解决方法是将 useDefaultWebProxy 这个属性改成false,不让它找代理。这样就会在程序第一次调用WCF的时候快很多。