可以在对象图中序列化或反序列化的最大项目数...具有知识类型

时间:2012-02-08 10:06:27

标签: wcf .net-4.0 datacontractserializer

在WCF 4.0服务中,我们在通用列表中收到大量数据。此列表对象图大于65536默认限制。我们已经习惯了,所以我们已经配置了服务以获得那些大图。

<serviceBehaviors>
    <behavior>
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </serviceBehaviors>

使用上面的xml配置块我们已经避免了过去没有问题的问题,但现在它不起作用。唯一的区别是,我们在我们尝试在WCF方法中反序列化的巨大列表元素中使用 KnownTypes

也许,我错过了一些针对知识类型的特殊配置吗?

3 个答案:

答案 0 :(得分:7)

不要忘记检查客户端配置。

How to fix MaxItemsInObjectGraph error?

中查看类似的答案
  

您需要在上面设置MaxItemsInObjectGraph   dataContractSerializer在客户端和服务器上使用行为   服务。

maxItemsInObjectGraph ignored

  

我忘记将此设置放在我的客户端app.config文件

答案 1 :(得分:1)

参考http://wcf.codeplex.com/discussions/258278,将以下ServiceBehavior属性放在类定义中,如下所示:

[ServiceContract]
[ServiceBehavior(MaxItemsInObjectGraph = int.MaxValue)]
public class MaintenanceResource

答案 2 :(得分:0)

就像迈克尔所说,我需要在客户端上添加一个这样的行为(在我网站的web.config中):

<behavior name="deepGraph">
    <dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>

...

<client>
    <endpoint address="..." behaviorConfiguration="deepGraph" ... />
</client>