如果返回的对象太多,我会收到异常:
格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数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会搞砸事情吗?
有人可以提出建议吗?
非常感谢:)
答案 0 :(得分:2)
为了确保,您是将MyServiceBehavior行为应用于服务配置中的服务定义,还是将maxItems行为应用于客户端配置中的端点定义(behaviorConfiguration属性)?