博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF学习笔记(三)
阅读量:6092 次
发布时间:2019-06-20

本文共 1296 字,大约阅读时间需要 4 分钟。

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

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

感谢这位大神,原文地址:

本文经过了些微的整理。

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

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

先说错误:

 
WCF服务端配置文件:
客户端
<system.serviceModel>节点下面:

  <behaviors>

    <endpointBehaviors>

      <behavior  >

        <dataContractSerializer maxItemsInObjectGraph="100000000"  />

      </behavior>

    </endpointBehaviors> s

</behaviors>

经过这三步设置,最后就OK了。
 s
 
maxItemsInObjectGraph:一个整数,指定要序列化或反序列化的最大项数,可以限制对象图中要序列化的项数。

MaxItemsInObjectGraph 属性指定序列化程序在一次 或 方法调用中序列化或反序列化的对象的最大数目。该方法总是读取一个根对象,但此对象的数据成员中可以具有其他对象。这些对象又可以具有其他对象。默认值为 。请注意,当序列化或反序列化数组时,每个数组项都计为一个单独的对象

具体分析错误原因:

这个是错误提示,在用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)的时候就会出现上面的错误了.

 

 

转载于:https://www.cnblogs.com/xyang/archive/2012/02/22/2363539.html

你可能感兴趣的文章
Razor引擎学习:RenderBody,RenderPage和RenderSection
查看>>
nyoj263精 挑 细 选
查看>>
Performance tuning in Python
查看>>
Solr应用扩展queryParser
查看>>
Mac使用笔记(二)
查看>>
POJ 1047
查看>>
PHP求两个数组的交集
查看>>
iPhone网络编程初体验-简单的聊天程序z
查看>>
N皇后问题(DFS)
查看>>
什么是ThreadLocal
查看>>
apktool 反汇编apk包
查看>>
Compiler
查看>>
Oracle ——如何读执行计划概述
查看>>
时间处理 c++ 获取当前系统时间 1. 时间戳形式 2. char *形式[转]
查看>>
C/C++学习之static_cast和dynamic_cast、reinterpret_cast
查看>>
语法:MySQL中INSERT INTO SELECT的使用
查看>>
[C/C++] ccpuid:CPUID信息模块 V1.03版,改进mmx/sse指令可用性检查(使用signal、setjmp,支持纯C)、修正AVX检查Bug...
查看>>
Tomcat加载servlet类文件 -我们到底能走多远系列(9)
查看>>
LINQ 学习笔记9
查看>>
<Codeforces Round #147 (Div. 2)>A. Free Cash(水题)
查看>>