Pregunta

Tengo un servicio de descanso WCF que acepta una cadena JSON

Uno de los parámetros es una gran cadena de números

Esto causa el siguiente error, que es visible al rastrear y usar SVC Trace Viewer

Hubo un error que deserializaba el objeto de la carconfiguración de tipo. La cuota máxima de longitud de contenido de cadena (8192) se ha excedido mientras se lee datos XML. Esta cuota puede aumentarse cambiando la propiedad MaxStringContentLength en el objeto XMLDICCIONARYReRequotas utilizado al crear el lector XML.

Ahora he leído todo tipo de artículos que aconsejan cómo rectificar esto

Todos ellos recomiendan aumentar varias configuraciones de configuración en el servidor y el cliente

p.ejError de serialización de la cadena en la llamada de servicio web

http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx

http://social.msdn.microsoft.com/forums/en/wcf/thread/f570823a-8581-45ba-8b0b-ab0c7d7fcae1

Entonces mi archivo de configuración se ve así

 <webHttpBinding>
        <binding name="webBinding" maxBufferSize="5242880"  maxReceivedMessageSize="5242880" >
          <readerQuotas  maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880" maxBytesPerRead="5242880" maxNameTableCharCount="5242880"/>
        </binding>
   </webHttpBinding>
...
...
...
<endpoint 
      address="/"
      binding="webHttpBinding"
      bindingConfiguration="webBinding"

Mi problema es que puedo cambiar esto en el servidor, pero no hay configuraciones de configuración de WCF en el cliente, ya que es un servicio de descanso y solo estoy haciendo una solicitud HTTP utilizando la WebClient objeto

¿algunas ideas?

¿Fue útil?

Solución

Por lo tanto, resulta que necesita una URL completamente calificada en la dirección del punto final, no una pariente

Error a llamar a un servicio de descanso WCF usando JSON. La cuota de longitud (8192) excedió

Otros consejos

Ese error no ocurriría en el cliente, ya que las cuotas de los lectores son algo exclusivo de WCF y WebClient/httpwebRequest no se deserializan ni hagan ningún otro tipo de cuotas.

Así que diría que es probable que esté poniendo la configuración en el lugar equivocado y que no se está recogiendo.

O eso o ... no estás usando uno de los serializadores de DataContract WCF manualmente en el lado del cliente, ¿verdad?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top