在WCF/WebService中,如果返回值过大,比如Array,List,DataSet等达到一定数量级的话,可能引发下面的异常

1. 受信Message Quota Size超过65536 (System.ServiceModel.CommunicationException)

解决方法:修改客户端配置文件app.config 的 maxReceivedMessageSize,maxBufferSize 两个属性。

但是,数量级继续增大,还会遇到新的问题:

2. MaxItemsInObjectGraph Quta Size超过65536(InnerException:System.Runtime.SerializationException)

生成XML如下,其中红色部分是被修改的部分:
<behavior name="NewBehavior"> 
    <dataContractSerializer maxItemsInObjectGraph="65536000" /> 
</behavior>

...

<endpoint address="http://localhost:3511/Service1.asmx" behaviorConfiguration="NewBehavior
                binding="basicHttpBinding" bindingConfiguration="Service1Soap" 
                contract="WebSvc.Service1Soap" name="Service1Soap" />

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <system.serviceModel>
  4. <behaviors>
  5. <endpointBehaviors>
  6. <behavior name="NewBehavior">
  7. <dataContractSerializer maxItemsInObjectGraph="65536000" />
  8. </behavior>
  9. </endpointBehaviors>
  10. </behaviors>
  11. <bindings>
  12. <basicHttpBinding>
  13. <binding name="Service1Soap" closeTimeout="00:01:00" openTimeout="00:01:00"
  14. receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
  15. bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
  16. maxBufferSize="65536000" maxBufferPoolSize="524288" maxReceivedMessageSize="65536000"
  17. messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
  18. useDefaultWebProxy="true">
  19. <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
  20. maxBytesPerRead="4096" maxNameTableCharCount="16384" />
  21. <security mode="None">
  22. <transport clientCredentialType="None" proxyCredentialType="None"
  23. realm="" />
  24. <message clientCredentialType="UserName" algorithmSuite="Default" />
  25. </security>
  26. </binding>
  27. </basicHttpBinding>
  28. </bindings>
  29. <client>
  30. <endpoint address="http://localhost:3511/Service1.asmx" behaviorConfiguration="NewBehavior"
  31. binding="basicHttpBinding" bindingConfiguration="Service1Soap"
  32. contract="WebSvc.Service1Soap" name="Service1Soap" />
  33. </client>
  34. </system.serviceModel>
  35. </configuration>

WCF中如何修改MaxItemsInObjectGraph的限制相关推荐

  1. 在WCF中实现双工通信(转载)

    首先声明此文章是转载博客园蒋老师之作:http://www.cnblogs.com/artech/archive/2007/03/02/661969.html 双工(Duplex)模式的消息交互方式体 ...

  2. WCF中的序列化[上篇]

    SOA 和Message Windows Communication Foundation (WCF) 是基于面向服务架构(Service Orientation Architecture--SOA) ...

  3. 【转】x.509证书在WCF中的应用(CS篇)

    [转自]x.509证书在WCF中的应用(CS篇) 为什么要用x.509证书? WCF的服务端和客户端之间,如 果不作任何安全处理(即服务端的<security mode="None&q ...

  4. WCF中的管道——管道类型

    管道是所有消息进出WCF应用程序的渠道.它的职责是以统一的方式编制和提供消息.管道中定义了传输.协议和消息拦截.管道以层级结构的形式汇总,就创建了一个管道栈.管道栈以分层的方式进行通信并处理消息.例如 ...

  5. WCF中几个容易忽略的知识点

    近来看WCF相关资料 发现之前一些没太关注或者有些错误认识的知识点,有些也貌似不怎么常用.于是整理了这一则笔记. 1. WCF中的绑定. 可以通过绑定无参数构造函数实例化绑定,然后调用CreateBi ...

  6. 细说WCF中的会话模式

    大家都知道WCF会话模式有几个要求:1.会话契约:2.绑定支持:3.实例模式为PerSession.这几个要素是WCF支持的必要条件. 会话契约:由服务端提供实现,客户端调用时只持有契约定义,所以需要 ...

  7. [转载]我的WCF之旅(3):在WCF中实现双工通信

    http://www.cnblogs.com/artech/archive/2007/03/02/661969.html 双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向 ...

  8. WCF中的REST是什么

    基于SOAP消息格式的WCF之所以强大原因之一是因为SOAP消息头的高度扩展性.相应的WS-*协议很多都体现在消息头封装的信息上,包括诸如寻址,需要调用方法名,维护Session的信息等等-- SOA ...

  9. 在WCF中的异常处理方法

    在 WCF 中,客户端调用服务时,可能抛出的异常有以下三种类型. 1. 通讯异常.诸如网络错误,地址错误,服务器没有启动等等.这类异常多是 CommunicationException (或其具体继承 ...

最新文章

  1. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(单色填充、分组颜色填充)实战
  2. 学生计算机教室管理规章制度,学校规章制度之小学信息技术教室管理制度
  3. .net错误处理机制
  4. java知识大全积累篇
  5. 算法小白——基本排序算法入门
  6. exchanger_如何通过示例在Java中使用Exchanger
  7. Yarn 和 Npm 命令行切换 摘录
  8. JAVA读取2g数据的速度_Java 读取大容量excel
  9. Linux环境下Mysql的安装教程及安装过程常见问题的解决方法
  10. Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题
  11. 关于SVM参数cg选取的总结帖[matlab-libsvm]
  12. 【C#网络编程系列】专题十:实现简单的邮件收发器
  13. java写便签_JAVA编写便签纸
  14. TCGA数据库的利用(三)——基因注释!
  15. 史蒂夫·乔布斯传记_Chapter 4: Atari and India
  16. 惠普服务器u盘做win7系统,惠普星14-CE U盘装系统win7教程
  17. android拷贝设备断连接,android – Firebase Messaging Inactivity,断开与AppMeasurementService的连接[复制]...
  18. DbGate:一款免费的智能数据库管理工具
  19. Windows上利用Python自动切换代理IP的终极方案!
  20. 迁移到AndroidX报错Program type already present: androidx.annotation xxx

热门文章

  1. 云更新可以装在个人计算机上吗,云更新服务器安装
  2. brew安装指定版本ruby_Mac安装Homebrew的那些事儿
  3. es的master选举摘要
  4. 1-10落败,5分钟崩盘!星际2职业高手史上首次被AI击溃,AlphaStar一战成名
  5. 腾讯IDG投资的明星无人车公司Zoox,拿下硅谷第一张载客许可
  6. 科大讯飞回应“同传造假”:承认转写人类同传,沟通不足造成误解
  7. 拿到软银巨额投资后,通用无人车部门Cruise可能要单独IPO了
  8. 数据库事务的4大特性与隔离级别
  9. 牛客OI周赛6-提高组 B 践踏
  10. CentOS 7 - 创建新用户