2009-12-31 61 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