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