WCF学习笔记(三)

今天遇到了一个很牛X的问题,多人一起解决很久,无果。

然,锲而不舍,一下午,从网络海洋里捞啊捞,终于觅得善果。

感谢这位大神,原文地址:http://hi.baidu.com/_253/blog/item/923a83f45b3c37c5f3d38559.html

本文经过了些微的整理。

WCF 传输大量数据出现“基础连接已经关闭...”错误的解决方案

按图做,如果自己的webconfig里没有相应节点,加上就好了。

先说错误:  WCF服务端配置文件: 客户端 <system.serviceModel>节点下面:   <behaviors>     <endpointBehaviors>       <behavior  >         <dataContractSerializer maxItemsInObjectGraph="100000000"  />       </behavior>     </endpointBehaviors> s </behaviors> 经过这三步设置,最后就OK了。  s   maxItemsInObjectGraph:一个整数,指定要序列化或反序列化的最大项数,可以限制对象图中要序列化的项数。 MaxItemsInObjectGraph 属性指定序列化程序在一次 ReadObject 或 WriteObject 方法调用中序列化或反序列化的对象的最大数目。该方法总是读取一个根对象,但此对象的数据成员中可以具有其他对象。这些对象又可以具有其他对象。默认值为 MaxValue。请注意,当序列化或反序列化数组时,每个数组项都计为一个单独的对象 具体分析错误原因: 这个是错误提示,在用WebService序列化的过程中,序列化的对象个数超出了65535个,也就是maxItemsInObjectGraph的默认这,造成这用情况是因为客户端与WebService之间传递的是对象,而WebService每次都要序列化对象,所以对序列化的对象的个数是有限制的,默认的就是65535,这个对象的个数是怎么计算出来的呢? 例如:现在在WebService端有一个对象Student Public class Student { Public int ID{get;set;} public Name{get;set;} } 在传递的过程中,对象的个数就是这个对象的本身加上本身所包含的对象的个数,就这个来说那么就是3个对象,要想使这三个对象能够序列化 maxItemsInObjectGraph=对象个数+2(假设maxItemsInObjectGraph默认值为0),只有在maxitemslnObjectGraph 比对象个数+2大的情况下,编译器才不会报错,要不然,就会出现上面的错误,其实还不止于此,这个的前提是只有一条记录的情况下,如果是两条记录呢,MaxItemSlnObjectGraph的最小值=对象个数*记录的条数(传递的可能是这个对象的一个集合)+2,也就是传递的数据越多,MaxItemSlnObjectGraph的值就会越大,当超过他的默认值(65536)的时候就会出现上面的错误了.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术/开源

从C#到TypeScript - async await

从C#到TypeScript - async await 上两篇分别说了Promise和Generator,基础已经打好,现在可以开始讲async await了...

2286
来自专栏大前端开发

ES6特性之:Spread操作符

Spread操作符(...),也称作展开操作符,作用是将可迭代的(Iterable)对象进行展开。

892
来自专栏极客编程

ECMAScript 6教程 (三) Class和Module(类和模块)

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.co...

943
来自专栏吴伟祥

Spring4的新特性 Bean Validation1.1

613
来自专栏Java技术栈

关于Java序列化你应该知道的一切

什么是序列化 我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。 Java序列化技术正是将对象转变成一串由...

2835
来自专栏LuckQI

Redis初识~List命令

1062
来自专栏前端大白专栏

ES6 async-await函数记录

2022
来自专栏阿杜的世界

Java泛型的局限和使用经验泛型的局限泛型的常用经验参考资料

//使用泛型类 @Data @Builder @AllArgsConstructor @NoArgsConstructor public class Data...

782
来自专栏IMWeb前端团队

ES6学习笔记

本文作者:IMWeb coolriver 原文出处:IMWeb社区 未经同意,禁止转载 本文为初步阅读ECMAScript6入门后的一些记录与感想。 ...

22010
来自专栏MasiMaro 的技术博文

C函数原理

C语言作为面向过程的语言,函数是其中最重要的部分,同时函数也是C种的一个难点,这篇文章希望通过汇编的方式说明函数的实现原理。

1163

扫码关注云+社区

领取腾讯云代金券