WCF方法引发对象图中最大项为';65536';

WCF方法引发对象图中最大项为';65536';,wcf,datacontractserializer,xmlserializer,servicebehavior,Wcf,Datacontractserializer,Xmlserializer,Servicebehavior,当返回的对象太多时,会出现异常: 格式化程序在尝试反序列化消息时引发异常:尝试反序列化参数时出错。InnerException消息为“对象图中可序列化或反序列化的最大项数为”65536“。更改对象图或增加MaxItemsInObjectGraph配额。“。有关更多详细信息,请参阅InnerException 我已经在服务器端的行为下查找并添加了: <behaviors> <serviceBehaviors> <behavior name="MySe

当返回的对象太多时,会出现异常:

格式化程序在尝试反序列化消息时引发异常:尝试反序列化参数时出错。InnerException消息为“对象图中可序列化或反序列化的最大项数为”65536“。更改对象图或增加MaxItemsInObjectGraph配额。“。有关更多详细信息,请参阅InnerException

我已经在服务器端的行为下查找并添加了:

<behaviors>
   <serviceBehaviors>
      <behavior name="MyServiceBehavior">
         <dataContractSerializer maxItemsInObjectGraph="2147483646"/>

        ...
正如您所看到的,异常是指dataContractSerializer(我在上面添加的配置也是如此)

是XmlSerializer把事情搞砸了吗

有人能给我建议吗


非常感谢:)

请确认,您是否将MyServiceBehavior行为应用于服务配置中的服务定义,将maxItems行为应用于客户端配置中的端点定义(behaviorConfiguration属性)?

是,虽然在我看来这很奇怪,因为它应该是跨平台的,而且告诉客户端如何配置其端的想法看起来很尴尬。是的,确实有点尴尬。如果应用ServiceBehavior属性来设置MaxItemsInGraph,这是否有效?[ServiceBehavior(MaxItemsInObjectGraph=2147483646)](关于服务实现,而不是合同)。感谢Jeffn825的关注:)设置行为毕竟是解决方案,XmlSerializer与问题无关。我只是把行为名称搞错了…添加dataContractSerializer元素,增加了对我的行为/服务行为/行为的限制,这对我来说很有效。
<behaviors>
   <endpointBehaviors>
       <behavior name="maxItems">
          <dataContractSerializer maxItemsInObjectGraph="2147483646" />
       </behavior>
   </endpointBehaviors>
</behaviors>
[ServiceContract(Namespace = "http://BlaBla.com/webservices/BlaBlaService")]
[XmlSerializerFormat(SupportFaults = true)]
public interface IBlaBlaServices
{
    [OperationContract]
    BlaBlaResponse GetBlaBla(BlaBlaRequestMessage searchBlaBlaRequest);
}