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
- <behavior name=«CustomEndPointBehavior«>
- <dataContractSerializer maxItemsInObjectGraph=«2147483647« />
- </behavior>
Y referenciarlo en el el endpoint del servicio en el web.config del lado del servidor
Code Snippet
- <endpoint
- address=«»
- binding=«basicHttpBinding«
- bindingConfiguration=«BindignConf«
- name=«Binding_name«
- contract=«IContract«
- listenUriMode=«Explicit«
- behaviorConfiguration=«CustomEndPointBehavior«/>
Tendremos solucionado el problema