Maximum number of items that can be serialized or deserialized in an object graph is 65536. Change the object graph or increase the MaxItemsInObjectGraph quota.

 

Cuando nos aparece este error la solución es sencilla y pasa por ampliar el número de objetos que el Serializer utilizado en WCF pueda serializar.

Esta configuración se debe realizar en el apartado behavior.

El problema surge cuando el cliente que tenemos es una aplicación silverlight. ¿Por qué? pues porque en un .config de silverlight no podemos incluir el behavior.

La solución pese a poder parecer compleja, puesto que ambos extremos, cliente y servidor deben ser idénticos, es realmente sencilla.

Basta con configurar el behavior solo en el servidor y el cliente silverlight funcionará perfectamente.

Así, con añadir un behavior  en el web config del lado del servidor como el sliguiente

Code Snippet
  1. <behavior name=«CustomEndPointBehavior«>
  2.   <dataContractSerializer maxItemsInObjectGraph=«2147483647« />
  3. </behavior>

           Y referenciarlo en el el endpoint del servicio en el web.config del lado del servidor

Code Snippet
  1. <endpoint
  2.   address=«»
  3.   binding=«basicHttpBinding«
  4.   bindingConfiguration=«BindignConf«
  5.   name=«Binding_name«
  6.   contract=«IContract«
  7.   listenUriMode=«Explicit«
  8.   behaviorConfiguration=«CustomEndPointBehavior«/>

Tendremos solucionado el problema

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *