Подтвердить что ты не робот

Служба WCF Максимальная квота длины массива (16384) превышена

У меня есть служба wsf и клиентское приложение. При попытке связаться с клиентом и службой я получил следующее сообщение:

"Форматирование исключило сообщение при попытке десериализации сообщения: при попытке десериализовать параметр http://tempuri.org/:blob произошла ошибка. Ошибка InnerException сообщение было" Ошибка десериализации объекта типа FileBlob. Максимальная длина длины массива (16384) была превышена при чтении данных XML. Эта квота может быть увеличена путем изменения свойства MaxArrayLength объекта XmlDictionaryReaderQuotas, используемого при создании XML-ридера Строка 1, позиция 25931. 'Более подробную информацию см. В InnerException. "

У меня есть элемент customBinding, и он не позволяет мне вставлять раздел "readerQuotas". В конфигурациях клиента и службы у меня есть следующий связывающий элемент:

<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>

Заранее благодарим за любую помощь:)

4b9b3361

Ответ 1

На самом деле, я решил проблему, добавив readerQuotas в раздел textMessageEncoding. Спасибо за помощь.

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

Ответ 2

Вы можете добавить элемент <readerQuotas> внутри элемента <binding>:

<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> 

Вы упомянули, что он "не позволяет мне вставлять". Какое сообщение об ошибке вы получаете?