WCF中如何修改MaxItemsInObjectGraph的限制
在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" />
- <?xml version="1.0" encoding="utf-8" ?>
- <configuration>
- <system.serviceModel>
- <behaviors>
- <endpointBehaviors>
- <behavior name="NewBehavior">
- <dataContractSerializer maxItemsInObjectGraph="65536000" />
- </behavior>
- </endpointBehaviors>
- </behaviors>
- <bindings>
- <basicHttpBinding>
- <binding name="Service1Soap" closeTimeout="00:01:00" openTimeout="00:01:00"
- receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
- bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
- maxBufferSize="65536000" maxBufferPoolSize="524288" maxReceivedMessageSize="65536000"
- messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
- useDefaultWebProxy="true">
- <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
- maxBytesPerRead="4096" maxNameTableCharCount="16384" />
- <security mode="None">
- <transport clientCredentialType="None" proxyCredentialType="None"
- realm="" />
- <message clientCredentialType="UserName" algorithmSuite="Default" />
- </security>
- </binding>
- </basicHttpBinding>
- </bindings>
- <client>
- <endpoint address="http://localhost:3511/Service1.asmx" behaviorConfiguration="NewBehavior"
- binding="basicHttpBinding" bindingConfiguration="Service1Soap"
- contract="WebSvc.Service1Soap" name="Service1Soap" />
- </client>
- </system.serviceModel>
- </configuration>
WCF中如何修改MaxItemsInObjectGraph的限制相关推荐
- 在WCF中实现双工通信(转载)
首先声明此文章是转载博客园蒋老师之作:http://www.cnblogs.com/artech/archive/2007/03/02/661969.html 双工(Duplex)模式的消息交互方式体 ...
- WCF中的序列化[上篇]
SOA 和Message Windows Communication Foundation (WCF) 是基于面向服务架构(Service Orientation Architecture--SOA) ...
- 【转】x.509证书在WCF中的应用(CS篇)
[转自]x.509证书在WCF中的应用(CS篇) 为什么要用x.509证书? WCF的服务端和客户端之间,如 果不作任何安全处理(即服务端的<security mode="None&q ...
- WCF中的管道——管道类型
管道是所有消息进出WCF应用程序的渠道.它的职责是以统一的方式编制和提供消息.管道中定义了传输.协议和消息拦截.管道以层级结构的形式汇总,就创建了一个管道栈.管道栈以分层的方式进行通信并处理消息.例如 ...
- WCF中几个容易忽略的知识点
近来看WCF相关资料 发现之前一些没太关注或者有些错误认识的知识点,有些也貌似不怎么常用.于是整理了这一则笔记. 1. WCF中的绑定. 可以通过绑定无参数构造函数实例化绑定,然后调用CreateBi ...
- 细说WCF中的会话模式
大家都知道WCF会话模式有几个要求:1.会话契约:2.绑定支持:3.实例模式为PerSession.这几个要素是WCF支持的必要条件. 会话契约:由服务端提供实现,客户端调用时只持有契约定义,所以需要 ...
- [转载]我的WCF之旅(3):在WCF中实现双工通信
http://www.cnblogs.com/artech/archive/2007/03/02/661969.html 双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向 ...
- WCF中的REST是什么
基于SOAP消息格式的WCF之所以强大原因之一是因为SOAP消息头的高度扩展性.相应的WS-*协议很多都体现在消息头封装的信息上,包括诸如寻址,需要调用方法名,维护Session的信息等等-- SOA ...
- 在WCF中的异常处理方法
在 WCF 中,客户端调用服务时,可能抛出的异常有以下三种类型. 1. 通讯异常.诸如网络错误,地址错误,服务器没有启动等等.这类异常多是 CommunicationException (或其具体继承 ...
最新文章
- R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(单色填充、分组颜色填充)实战
- 学生计算机教室管理规章制度,学校规章制度之小学信息技术教室管理制度
- .net错误处理机制
- java知识大全积累篇
- 算法小白——基本排序算法入门
- exchanger_如何通过示例在Java中使用Exchanger
- Yarn 和 Npm 命令行切换 摘录
- JAVA读取2g数据的速度_Java 读取大容量excel
- Linux环境下Mysql的安装教程及安装过程常见问题的解决方法
- Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题
- 关于SVM参数cg选取的总结帖[matlab-libsvm]
- 【C#网络编程系列】专题十:实现简单的邮件收发器
- java写便签_JAVA编写便签纸
- TCGA数据库的利用(三)——基因注释!
- 史蒂夫·乔布斯传记_Chapter 4: Atari and India
- 惠普服务器u盘做win7系统,惠普星14-CE U盘装系统win7教程
- android拷贝设备断连接,android – Firebase Messaging Inactivity,断开与AppMeasurementService的连接[复制]...
- DbGate:一款免费的智能数据库管理工具
- Windows上利用Python自动切换代理IP的终极方案!
- 迁移到AndroidX报错Program type already present: androidx.annotation xxx