27 votos

Servicio WCF La máxima longitud de matriz de cuota (16384) ha sido superado

Tengo una fsm servicio y una aplicación cliente. Mientras tratando de comunicar el cliente y el servicio que he recibido el siguiente mensaje:

"El formateador, se produjo una excepción al intentar deserializar el mensaje: se ha producido un error al intentar deserializar parámetro http://tempuri.org/:blob. El InnerException mensaje fue que hubo un error deserializar el objeto de tipo FileBlob. La máxima longitud de matriz de cuota (16384) ha sido superado, mientras que la lectura de datos XML. Esta cuota podrá ser aumentado por el cambio de la MaxArrayLength de la propiedad en el XmlDictionaryReaderQuotas objeto que se utiliza a la hora de crear el XML lector. La línea 1, posición 25931.'. Por favor, consulte InnerException para obtener más detalles."

Tengo el customBinding elemento y no me permite insertar "readerQuotas" sección. En ambos el cliente y el servicio configs tengo el siguiente elemento de enlace:

<customBinding>
  <binding name="LicenseServiceBinding"
                closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00">
      <security authenticationMode="UserNameOverTransport">
          <localClientSettings maxClockSkew="00:07:00" />
          <localServiceSettings maxClockSkew="00:07:00" />
      </security>
      <windowsStreamSecurity />
      <httpsTransport maxReceivedMessageSize="2147483646"/>          
  </binding>
</customBinding>

Gracias de antemano por la ayuda:)

43voto

dmitry.baranovsky Puntos 411

En realidad, he resuelto el problema mediante la adición de readerQuotas dentro de textMessageEncoding sección. Gracias por la ayuda.

<textMessageEncoding messageVersion="Soap11">
          <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="2147483646" maxBytesPerRead="4096" maxNameTableCharCount="5242880"/>
</textMessageEncoding>

18voto

Richard Szalay Puntos 42486

Usted debe ser capaz de añadir un <readerQuotas> elemento dentro de la <binding> elemento:

<customBinding> 
  <binding name="LicenseServiceBinding" 
                closeTimeout="00:01:00" openTimeout="00:01:00" 
                receiveTimeout="00:10:00" sendTimeout="00:01:00"> 
      <security authenticationMode="UserNameOverTransport"> 
          <localClientSettings maxClockSkew="00:07:00" /> 
          <localServiceSettings maxClockSkew="00:07:00" /> 
      </security> 
      <readerQuotas maxArrayLength="32768" />
      <windowsStreamSecurity /> 
      <httpsTransport maxReceivedMessageSize="2147483646"/>           
  </binding> 
</customBinding> 

Usted ha mencionado que "no me permite insertar". Qué mensaje de error qué se obtiene?

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X