webservice 针对WebService服务,客户端调用时报序列化的最大项数maxItemsInObjectGraph超过65536问题...

今天在使用webservice服务时候,报异常“The InnerException message was 'Maximum number of items that can be serialized or deserialized in an object graph is '65536'”,首先看到65536以为是传输的字节数超过了65536的限制,查看服务段配置文件如下:

 <httpRuntime executionTimeout="300000" maxRequestLength="2024000"/>

已配置最大请求长度。

客户端配置如下:

<binding name="mySoap" closeTimeout="00:10:00" receiveTimeout="00:10:00"
sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
  <readerQuotas maxStringContentLength="2147483647" />
</binding>

同样的配置了最大缓存,最大接受长度,原因不在此。

仔细看异常信息,序列化时,最大项数maxItemsInObjectGraph超过了65536,是最大项数,不是最大字节。

maxItemsInObjectGraph是在服务在一次调用序列化或者反序列化过程中,读或者写对象的最大数目。

经查帮助文档,发现针对maxItemsInObjectGraph配置,默认是65536,服务端(wcf服务)可以通过如下调整:

<behaviors>
  <serviceBehaviors>
    <behavior name="myBehavior">
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

而客户端可以通过如下调整:

<behaviors>
  <endpointBehaviors>
    <behavior name="myBehavior">
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
  </endpointBehaviors>
</behaviors>

配置过后,运行正常。

大家也可以参考http://www.cnblogs.com/wangshuai/archive/2009/12/29/1634978.html

转载于:https://www.cnblogs.com/lcawen/p/6006803.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值