我们的WCF服务有以下例外:
对象图中可以序列化或反序列化的最大项数为“32767”。更改对象图或增加MaxItemsInObjectGraph配额。
我们将配置更改为:
<behavior name="large">
<dataContractSerializer maxItemsInObjectGraph="214783647"/>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
但没有变化。
在调试模式下,当服务主机打开时,DataContractSerializer的值为214783647,并且仍然会发生异常。
以编程方式更改值无济于事。
在服务上添加ServiceBehavior的属性没有帮助。
更改像here这样的machine.config - 没有帮助。
有什么想法吗? 谢谢。
答案 0 :(得分:3)
您可能想要确认错误不是来自交易的另一方(客户)。
验证的一种方法是配置和启用WCF诊断事件跟踪和消息记录,然后重新运行测试事务并查看服务跟踪日志文件。以下链接演示了如何启用跟踪和消息记录。
答案 1 :(得分:0)
感谢我的大学通过删除ReferencePreservingDataContractFormat属性解决了问题,我们认为这是因为该属性创建了自己的DataContractSerializer,忽略了配置。