今天使用WCF传输用户集合时出现了一个诡异的错误:
System.ServiceModel.CommunicationException: 服务器未提供有意义的回复;这可能是由协定不匹配、会话过早关闭或内部服务器错误引起的。
百思不得其解,在数次尝试后,发现应该不会是协定不匹配或者会话关闭,于是尝试将传输的List<User>变小,当List<User>变的很小时变不再出现这个问题,于是到网上查了一下,原来WCF传输List集合时,在序列化时是有大小限制的,默认的可序列化的集合长度是65536,如果List的大小超出这个值就需要更改了配置了,在服务器端的behavior配置中增加一行配置即可解决
<behavior name="JXSoft.JPlan.WCFService.Behavior">
<serviceMetadata/>
<serviceDebug includeExceptionDetailInFaults="false" />
<dataContractSerializer maxItemsInObjectGraph="6553600"/>
</behavior>
BTW;WCF是很强大,但是有些错误提示还真让人很迷惑,太宽泛了。
本文转自wengyuli 51CTO博客,原文链接:http://blog.51cto.com/wengyuli/586743,如需转载请自行联系原作者