Максимальная квота длины строки содержимого (8192) была превышена при чтении данных XML - PullRequest
2 голосов
/ 07 марта 2012

У меня нет проблем с извлечением большого количества данных, но отправка их обратно в службу отображает эту ошибку.

Средство форматирования выдало исключение при попытке десериализации сообщения: при попытке десериализации параметра произошла ошибка http://tempuri.org/:response. Сообщение InnerException было «Произошла ошибка при десериализации объекта типа System.String. Максимальная квота длины строки содержимого (8192) была превышена при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxStringContentLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML.

Вот что у меня есть на службе WCF (сервер):

 <bindings>
  <basicHttpBinding>
    <binding name="BasicHTTPEndpoint" maxBufferSize="2147483647" maxBufferPoolSize="524288" 
             maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
             useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
      maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />          
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://192.168.1.99/Service/SerializerJsonService"
            binding="basicHttpBinding" bindingConfiguration="HandleLargeMessage"
            contract="XMLService.IXMLReader" name="BasicHTTPEndpoint" />
</client>

и servicereferences.clientconfig:

<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_ISerializerJsonService" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://192.168.1.99/Service/SerializerJsonService.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISerializerJsonService"
            contract="YelpService.ISerializerJsonService" name="BasicHttpBinding_ISerializerJsonService" />
    </client>
</system.serviceModel>

Ответы [ 2 ]

6 голосов
/ 06 декабря 2012

В конфигурации сервера:

  <basicHttpBinding>
    <binding name="BasicHTTPEndpoint"...

должно быть

<basicHttpBinding>
    <binding name="HandleLargeMessage"...

, чтобы конечная точка использовала эту привязку (которую вы указываете в BindingConfiguration="HandleLargeMessage", атрибут name именуетсяконечная точка только здесь)

0 голосов
/ 07 марта 2012

Я думаю, что проблема в maxBytesPerRead="4096"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...