我在尝试访问我的 WCF 服务时遇到以下错误。
'对象图中可以序列化或反序列化的最大项目数是'65536'。更改对象图或增加 MaxItemsInObjectGraph 配额
做一些研究,看起来我需要做的就是将此设置更新为更高的值。这是我想要做的,但似乎没有从配置中读取设置。我不断收到与其中的 65536 值相同的异常。
我按照此链接上的说明进行操作,但没有运气。
这是我在 WCF 服务的 Web.Config 上配置的内容。
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
<serviceDebug includeExceptionDetailInFaults="false" />
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
</behavior>
</serviceBehaviors>
</behaviors>
这是客户端的 app.config 中的内容:
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior >
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
</behavior>
</endpointBehaviors>
</behaviors>
最后,我在 WCF 服务本身上有以下属性:
[ServiceBehavior(MaxItemsInObjectGraph = 2147483646, IncludeExceptionDetailInFaults = true)]
尽管有上述配置,我仍然收到一个抱怨 65536 值的异常。为什么应用程序没有使用这些设置?还有其他需要设置的地方吗?