2012-02-08 50 views
6

在WCF 4.0服务中,我们在通用列表中收到大量数据。此列表对象图大于65536的默认限制。我们已经习惯了,所以我们已经配置了服务来获取这些大图。在对象图中可以序列化或反序列化的项目的最大数量...知识类型

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

有了上述的xml配置,我们避免了过去没有问题的问题,但现在它不起作用。唯一的区别是,我们在这里使用已知类型在我们试图在WCF方法中反序列化的巨大列表元素中。

也许,我是否缺少一些知识类型的特殊配置?

+0

你确信这就是BEING超过其MaxItemsInObjectGraph,而不是,例如,MaxReceivedMessageSize? – 2012-02-08 14:01:12

+0

清除异常'在对象图中可以序列化或反序列化的项目的最大数目为'65535':( – 2012-02-08 14:49:51

+0

您的服务是否声明了behaviorConfiguration属性?如果是这样,它将不会拾取上面的默认值 – 2012-02-08 20:00:30

回答

1

参考http://wcf.codeplex.com/discussions/258278,把下面的ServiceBehavior属性的类定义如下:

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

在生产中,建议指定实际期望值,而不是MaxValue,而配置文件是一个灵活的选项,但属性不灵活。 – 2013-06-04 09:16:39

相关问题