2009-12-31 60 views
3

我有一個非常奇怪的情況。我有一大組記錄作爲WCF服務的List返回。如果我將該設置作爲DataTable返回,則一切正常。該集合中約有19,000條記錄。如果我將該集作爲List返回(其中T是DataContract),則返回錯誤並在返回任何長度超過10922條記錄的集時關閉連接。我認爲這與我的數據有關,除非另一個人報告了10922條記錄的限制完全相同的問題。有沒有其他人遇到過這個問題,如果有的話,你是如何解決它的?10922 WCF中.Net 3.5的記錄限制

+0

BTW,返回按預期的DataTable作品數據,所以我知道這不是一個大小問題,它得是一個bug其他地方。 – 2010-02-25 21:43:58

+0

http://stackoverflow.com/questions/7476853/wcf-error-maximum-number-of-items-that-c​​an-be-serialized-or-deserialized-in-an – 2013-01-30 07:39:07

回答

4

我們遇到了同樣的問題。

從服務跟蹤日誌,我們可以檢索以下異常:

錯誤,而試圖序列參數[]。嘗試序列化參數[]時的最大數量錯誤。在對象圖中可以序列化或反序列化的項目的最大數量是'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

0

我們實際上在工作中遇到了這個問題。我們嘗試通過WCF Web服務發送大量數據。我們得到了20,000條記錄,所以我們最終打破了數據並進行了一些Web服務調用。你能做類似的事嗎?把記錄分成更小的塊,然後在另一端合併它們?

+0

打破通話不是一個選項。 – 2010-02-25 21:43:02

1

在客戶端和服務器上檢查您的端點的maxReceivedMessageSize。

+0

這對結果沒有影響。 – 2010-02-25 21:42:23