【发布时间】:2011-04-06 07:13:25
【问题描述】:
返回的对象太多时出现异常:
格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://.../Contract:GetBlaBlaResult 时出错。 InnerException 消息是“对象图中可以序列化或反序列化的最大项目数为“65536”。更改对象图或增加 MaxItemsInObjectGraph 配额。 '。有关更多详细信息,请参阅 InnerException。
我查了一下,在服务端的行为下添加了:
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
...
在客户端:
<behaviors>
<endpointBehaviors>
<behavior name="maxItems">
<dataContractSerializer maxItemsInObjectGraph="2147483646" />
</behavior>
</endpointBehaviors>
</behaviors>
但似乎被忽略了,异常不断出现。
问题是我使用 XmlSerializer(用于元素中的属性):
[ServiceContract(Namespace = "http://BlaBla.com/webservices/BlaBlaService")]
[XmlSerializerFormat(SupportFaults = true)]
public interface IBlaBlaServices
{
[OperationContract]
BlaBlaResponse GetBlaBla(BlaBlaRequestMessage searchBlaBlaRequest);
}
如您所见,例外是指 dataContractSerializer(我在上面添加的配置也是如此)。
是不是 XmlSerializer 搞砸了?
有人可以建议吗?
非常感谢:)
【问题讨论】:
标签: wcf datacontractserializer xmlserializer servicebehavior