1

我们的 WCF 服务有以下异常:

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

我们将配置更改为:

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

但没有变化。

在调试模式下,服务主机打开时,DataContractSerializer 的值为 214783647,仍然会出现异常。

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

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

像这里一样更改 machine.config - 没有帮助。

有任何想法吗?谢谢。

4

2 回答 2

3

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

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

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

于 2013-10-07T13:43:09.773 回答
0

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

更多细节

于 2013-10-17T06:43:20.657 回答