Служба WCF Превышена квота максимальной длины массива (16384)
У меня есть сервис wsf и клиентское приложение. При попытке связать клиента и сервис я получил следующее сообщение:
"Средство форматирования выдало исключение при попытке десериализации сообщения: при попытке десериализации параметра http://tempuri.org/:blob произошла ошибка. Сообщение InnerException было" Произошла ошибка при десериализации объекта типа FileBlob. при чтении данных XML была превышена максимальная квота длины массива (16384). Эту квоту можно увеличить, изменив свойство 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>
Заранее благодарю за любую помощь:)
2 ответа
На самом деле, я решил проблему, добавив readerQuotas в разделе textMessageEncoding. Спасибо за помощь.
<textMessageEncoding messageVersion="Soap11">
<readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="2147483646" maxBytesPerRead="4096" maxNameTableCharCount="5242880"/>
</textMessageEncoding>
Вы должны быть в состоянии добавить <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>
Вы упомянули, что это "не позволяет мне вставить". Какое сообщение об ошибке вы получаете?