我有一個非常奇怪的情況。我有一大組記錄作爲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