2014-09-26 2 views
0

У меня возникла ошибка выше после добавления параметра maxItemsInObjectGraph =« 2147483647 »как сервера, так и клиента. Однако в моем проекте большое количество данных может передаваться с использованием «datatable» объектов без каких-либо проблем. В этой ошибке произошло большое количество данных, переданных с использованием объектов «Список <>».
My dotnetframework 4.0, но я нашел эту ошибку НЕ найденной в dotnetframework 4.5, и большое количество данных может передавать с помощью объекта «List <>» без ошибок. Также это базовый проект Windows.Ошибка WCF - «Максимальное количество элементов, которые могут быть сериализованы или десериализованы в графе объектов, равно« 65536 »

Пожалуйста, любой может решить эту проблему. Вот настройки моего сервера и клиента app.cofig.

Спасибо !!!

Служба поддержки;

<system.serviceModel> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name="CommonBehavior"> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
     <serviceMetadata httpGetEnabled="false"/> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <serviceThrottling 
      maxConcurrentSessions="1200" 
      maxConcurrentCalls="192" 
      maxConcurrentInstances="1392" 
      /> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 

    <bindings> 
    <netTcpBinding> 

     <binding maxReceivedMessageSize="2147483647" name="netTcpBinding" transferMode="Streamed" listenBacklog="2000" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="2000" 
         closeTimeout="08:00:00" openTimeout="08:00:00" receiveTimeout="08:00:00" sendTimeout="08:00:00"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <reliableSession ordered="true" inactivityTimeout="08:00:00" 
      enabled="false" /> 
     <security mode="None"> 
      <transport clientCredentialType ="None"/> 
     </security> 
     </binding> 
    </netTcpBinding> 
    </bindings> 


    <services> 
    <service behaviorConfiguration="CommonBehavior" name="MyBLL"> 
     <endpoint address="" binding="netTcpBinding" bindingConfiguration="netTcpBinding" name="MyEndPoint" contract="IMy"> 
     <identity> 
      <dns value="localhost"/> 
     </identity> 
     </endpoint> 
     <host> 
     <baseAddresses> 
      <add baseAddress="net.tcp://localhost:8000/MySVC"/> 
     </baseAddresses> 
     </host> 
    </service> 
    </services> 
</system.serviceModel> 

Мой клиент;

<system.serviceModel> 
    <client> 
    <endpoint name="MyEndPoint" address="net.tcp://localhost:8000/MySVC" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="IMy" /> 
    </client> 

    <behaviors> 
    <endpointBehaviors> 
     <behavior name="CommonBehavior"> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
     </behavior> 
    </endpointBehaviors> 
    </behaviors> 

    <bindings> 
    <netTcpBinding> 
     <binding name="netTcpBinding" maxReceivedMessageSize="2147483647" transferMode="Streamed" listenBacklog="2000" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="2000" 
       closeTimeout="08:00:00" openTimeout="08:00:00" receiveTimeout="08:00:00" sendTimeout="08:00:00"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <reliableSession ordered="true" inactivityTimeout="08:00:00" 
      enabled="false" /> 
     <security mode="None"> 
      <transport clientCredentialType ="None"/> 
     </security> 

     </binding> 
    </netTcpBinding> 
    </bindings> 

    <services> 
    <service behaviorConfiguration="CommonBehavior" name="MyEndPoint"> 
     <endpoint address="" behaviorConfiguration="CommonBehavior" binding="netTcpBinding" bindingConfiguration="netTcpBinding" name="MyEndPoint" contract="Imy"> 
     <identity> 
      <dns value="localhost" /> 
     </identity> 
     </endpoint> 
     <host> 
     <baseAddresses> 
      <add baseAddress="net.tcp://localhost:8000/MySVC" /> 
     </baseAddresses> 
     </host> 
    </service> 
    </services> 
</system.serviceModel> 
+0

Макс получил размер сообщения 2 Гб? Что вы здесь делаете? – Groo

+0

Я уменьшил его на 512 МБ. но его не работает .. !! – Chamal

+0

Почему у вас есть раздел '' в вашей конфигурации клиента? Это должно быть ''. – Tim

ответ

0

Наконец я нашел ошибку в клиенте конфигурации и я решить мою проблему.

Моя ошибка была behaviorConfiguration = "CommonBehavior" тег не в клиента, конечной секции. После добавления этой части проблема была успешно решена и большое количество записей есть общий список Я могу передавать с сервера на клиент.

Это мой исправленный клиент конфигурации -

<system.serviceModel> 
    <client> 
    <endpoint name="MyEndPoint" behaviorConfiguration="CommonBehavior" address="net.tcp://localhost:8000/MySVC" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="IMy" /> 
    </client> 

    <behaviors> 
    <endpointBehaviors> 
     <behavior name="CommonBehavior"> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
     </behavior> 
    </endpointBehaviors> 
    </behaviors> 

    <bindings> 
    <netTcpBinding> 
     <binding name="netTcpBinding" maxReceivedMessageSize="2147483647" transferMode="Streamed" listenBacklog="2000" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="2000" 
       closeTimeout="08:00:00" openTimeout="08:00:00" receiveTimeout="08:00:00" sendTimeout="08:00:00"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <reliableSession ordered="true" inactivityTimeout="08:00:00" 
      enabled="false" /> 
     <security mode="None"> 
      <transport clientCredentialType ="None"/> 
     </security> 

     </binding> 
    </netTcpBinding> 
    </bindings> 
</system.serviceModel> 
Смежные вопросы

 Смежные вопросы