Я получаю исключение, когда возвращено слишком много объектов:
Форматировщик выдал исключение при попытке десериализации сообщения: при попытке десериализации параметра произошла ошибка http: //.../Contract: GetBlaBlaResult . Сообщение InnerException было «Максимальное количество элементов, которые могут быть сериализованы или десериализованы в графе объектов, равно 65536». Измените граф объекта или увеличьте квоту MaxItemsInObjectGraph. ». Пожалуйста, смотрите InnerException для более подробной информации.
Я посмотрел его и добавил под поведением на стороне сервера:
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
...
А на стороне клиента:
<behaviors>
<endpointBehaviors>
<behavior name="maxItems">
<dataContractSerializer maxItemsInObjectGraph="2147483646" />
</behavior>
</endpointBehaviors>
</behaviors>
Но похоже, что оно игнорируется, и исключение продолжает возникать.
Дело в том, что я использую XmlSerializer (для атрибутов в элементах):
[ServiceContract(Namespace = "http://BlaBla.com/webservices/BlaBlaService")]
[XmlSerializerFormat(SupportFaults = true)]
public interface IBlaBlaServices
{
[OperationContract]
BlaBlaResponse GetBlaBla(BlaBlaRequestMessage searchBlaBlaRequest);
}
и исключение, как вы можете видеть, относится к dataContractSerializer (как и конфигурация, которую я добавил выше).
Это XmlSerializer, который испортил вещи?
Может кто-нибудь посоветовать, пожалуйста?
Большое спасибо:)