我有一个非常奇怪的情况。我有一大组记录作为WCF服务的List返回。如果我将该设置作为DataTable返回,则一切正常。该集合中约有19,000条记录。如果我将该集作为List返回(其中T是DataContract),则返回错误并在返回任何长度超过10922条记录的集时关闭连接。我认为这与我的数据有关,除非另一个人报告了10922条记录的限制完全相同的问题。有没有其他人遇到过这个问题,如果有的话,你是如何解决它的?10922 WCF中.Net 3.5的记录限制
回答
我们遇到了同样的问题。
从服务跟踪日志,我们可以检索以下异常:
错误,而试图序列参数[]。尝试序列化参数[]时的最大数量错误。在对象图中可以序列化或反序列化的项目的最大数量是'65536'。更改对象图或增加MaxItemsInObjectGraph配额。
使用参数maxItemsInObjectGraph更改dataContractSerializer关键字后,即使使用数百万条记录(条件是您相应地更改了maxReceivedMessageSize),所有内容仍能平稳运行。
的web.config:
<behaviors>
<serviceBehaviors>
<behavior name="WasteWatcher.TestService.ServiceImplementation.TestService_Behavior">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" />
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
的app.config:
这些变化在web.config中,并以下列方式在app.config进行
<behaviors>
<endpointBehaviors>
<behavior name="SerializerBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</endpointBehaviors>
</behaviors>
不要忘记将参数behaviorConfiguration =“SerializerBehavior”添加到端点k安永:
<endpoint address="http://localhost:9542/TestService.Host/TestService.svc"
binding="customBinding" bindingConfiguration="DefaultEndpoint"
contract="WasteWatcher.TestService.Test.Client.TestServiceProxy.TestServiceContract"
name="DefaultEndpoint" behaviorConfiguration="SerializerBehavior">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
问候
马库斯Rohlof
我们实际上在工作中遇到了这个问题。我们尝试通过WCF Web服务发送大量数据。我们得到了20,000条记录,所以我们最终打破了数据并进行了一些Web服务调用。你能做类似的事吗?把记录分成更小的块,然后在另一端合并它们?
打破通话不是一个选项。 – 2010-02-25 21:43:02
在客户端和服务器上检查您的端点的maxReceivedMessageSize。
这对结果没有影响。 – 2010-02-25 21:42:23
- 1. 如何限制WCF日志记录
- 2. .net 3.5从web.config记录到文件
- 3. 限制的记录
- 4. .NET 3.5中定义的路由与WCF
- 5. .NET中的REST友好WCF终端3.5
- 6. .NET 3.5 WCF请求过滤
- 7. .NET WCF权限
- 8. 在sqlite中限制记录
- 9. 记录与限制
- 10. will_paginate限制记录
- 11. 发布IIS上的WCF服务.NET 3.5
- 12. 限制记录和放置限制
- 13. log4net不记录混合使用.net 1.1和.net 3.5
- 14. 限制Rails中表中的记录数
- 15. 如何在.NET 3.5中设置目录权限?
- 16. 递归中的限制记录
- 17. coreplot中记录的最大限制
- 18. Aerospike select query中的记录数限制
- 19. 在MySQL中返回的限制记录
- 20. AppEngine上记录限制
- 21. WCF迁移从.net 3.5到4.0
- 22. WCF和.NET 3.5:接收大型数组
- 23. 增加头部到.NET 3.5 WCF客户
- 24. MySQL表记录限制
- 25. 在mysql中记录不同记录后应用10的限制
- 26. mysqldump限制记录之间
- 27. VB6 ADO记录集限制
- 28. sql限制唯一记录
- 29. 的.NET Framework 3.5,集绑定日志记录
- 30. .NET 3.5中的Expression.Default
BTW,返回按预期的DataTable作品数据,所以我知道这不是一个大小问题,它得是一个bug其他地方。 – 2010-02-25 21:43:58
http://stackoverflow.com/questions/7476853/wcf-error-maximum-number-of-items-that-can-be-serialized-or-deserialized-in-an – 2013-01-30 07:39:07