Максимальное количество элементов, которые могут быть сериализованы или десериализованы в графе объектов ... с типами знаний - PullRequest
6 голосов
/ 08 февраля 2012

В сервисе WCF 4.0 мы получаем огромное количество данных в общем списке. Этот граф объекта списка больше, чем ограничение по умолчанию 65536 Мы привыкли к этому, поэтому мы настроили сервис для получения этих больших графиков.

<serviceBehaviors>
    <behavior>
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </serviceBehaviors>

С помощью приведенного выше фрагмента конфигурации xml мы без проблем избежали проблемы в прошлом, но теперь она не работает. Единственное отличие состоит в том, что здесь мы используем KnownTypes в огромных элементах списка, которые мы пытаемся десериализовать в методе WCF.

Может быть, мне не хватает какой-то особой конфигурации для knowntypes?

Ответы [ 2 ]

7 голосов
/ 28 октября 2012

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

Смотрите похожие ответы в Как исправить ошибку MaxItemsInObjectGraph?

Вам необходимо установить MaxItemsInObjectGraph на dataContractSerializer использует поведение как на клиенте, так и на сервис.

и maxItemsInObjectGraph игнорируется

Я забыл разместить этот параметр в моем файле app.config клиента

.

1 голос
/ 23 января 2013

Со ссылкой на http://wcf.codeplex.com/discussions/258278, добавить следующий атрибут ServiceBehavior в определение класса следующим образом:

[ServiceContract]
[ServiceBehavior(MaxItemsInObjectGraph = int.MaxValue)]
public class MaintenanceResource
...