Wcf忽略MaxItemsInObjectGraph值

时间:2013-10-07 13:33:49

标签: c# .net wcf serialization servicebehavior

我们的WCF服务有以下例外:

  

对象图中可以序列化或反序列化的最大项数为“32767”。更改对象图或增加MaxItemsInObjectGraph配额。

我们将配置更改为:

  <behavior name="large">
      <dataContractSerializer maxItemsInObjectGraph="214783647"/>
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
  </behavior>

但没有变化。

在调试模式下,当服务主机打开时,DataContractSerializer的值为214783647,并且仍然会发生异常。

以编程方式更改值无济于事。

在服务上添加ServiceBehavior的属性没有帮助。

更改像here这样的machine.config - 没有帮助。

有什么想法吗? 谢谢。

2 个答案:

答案 0 :(得分:3)

您可能想要确认错误不是来自交易的另一方(客户)。

验证的一种方法是配置和启用WCF诊断事件跟踪和消息记录,然后重新运行测试事务并查看服务跟踪日志文件。以下链接演示了如何启用跟踪和消息记录。

http://msdn.microsoft.com/en-us/library/ms751526.aspx

答案 1 :(得分:0)

感谢我的大学通过删除ReferencePreservingDataContractFormat属性解决了问题,我们认为这是因为该属性创建了自己的DataContractSerializer,忽略了配置。

More details