文章内容列表:
1. 场景:
2. 解决方案
3. WCF契约与服务实现设计静态图
4. WCF契约与服务实现设计详细说明
6. 服务端启动服务代码:
7. 客户端代码
8. WCF大数据量传输解决方案源码下载
1. 场景:
WCF在网络传输中,大数据量传输造成网络阻塞,宽带无法承受;
2. 解决方案
解决WCF在网络传输中的大数据量问题:
A.需要把相关数据序列化成字节流,再对字节流进行压缩,再进行传输,到了客户端再做反向操作便可获得原始数据。
B.如果压缩后的数据仍然较大时,可以再压缩流后,再对流进行拆分即可。
3. WCF契约与服务实现设计静态图
4. WCF契约与服务实现设计详细说明
5. WCF契约与服务代码实现:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.ServiceModel;
- using System.Text;
- ///日期:2008-04-16
- ///作者:旋风
- ///来自:http://cnblogs.com/xuanfeng
- namespace WCFDataTransfers
- {
- [ServiceContract(Namespace = "http://DataTransfers/Demao")]
- public interface IDataTransfers
- {
- /// <summary>
- /// 获取所用压缩后字节流
- /// </summary>
- /// <returns></returns>
- [OperationContract]
- byte[] GetAllBuffer();
- /// <summary>
- /// 设置压缩后字节流分块,每一块的大小
- /// </summary>
- /// <param name="length"></param>
- [OperationContract]
- void SetBufferLength(int length);
- /// <summary>
- /// 读取压缩后字节流一块,并提升字节流的位置
- /// </summary>
- /// <returns></returns>
- [OperationContract]
- bool ReadNextBuffer();
- /// <summary>
- /// 获取当前块的字节流
- /// </summary>
- /// <returns></returns>
- [OperationContract]
- byte[] GetCurrentBuffer();
- }
- }
- using System;
- using System.Data;
- using System.Runtime.Serialization;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.IO;
- using System.IO.Compression;
- using System.Collections.Generic;
- using System.Linq;
- using System.ServiceModel;
- using System.Text;
- ///日期:2008-04-16