Служба WCF — клиент, получающий CommunicationException

В настоящее время мы подключаемся к службе WCF. На данный момент я получаю прерывистые сообщения CommunicationExceptions.

-> Исключение (CommunicationException) System.ServiceModel.CommunicationException: сервер вернул недопустимую ошибку SOAP. Пожалуйста, смотрите InnerException для более подробной информации. ---> System.Xml.XmlException: превышена квота на максимальную длину строки (8192) при чтении XML-данных. Эту квоту можно увеличить, изменив свойство MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании средства чтения XML.

Я уже обновил свой файл конфигурации, чтобы установить для MaxStringContentLength значение 2147483647.

Все еще получаю эти ошибки с перерывами.

Любые предположения о том, что может быть их причиной?

Заранее спасибо, Фиона

ОБНОВЛЕНИЕ Ниже приведена привязка из файла конфигурации:

<binding name="BasicHttpBinding_ServiceInterface" closeTimeout="00:01:00"
           openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
           allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
           maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
           messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
           useDefaultWebProxy="true">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
             maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="Message">
            <message clientCredentialType="Certificate"/>
          </security>
        </binding>

person Fiona    schedule 28.06.2012    source источник


Ответы (1)


Вам также необходимо установить Binding.MaxArrayLength,ReaderQuotas.MaxBytesPerRead, чтобы он работал правильно.

person Toan Nguyen    schedule 28.06.2012
comment
Спасибо DrakeVN. Я должен был упомянуть в своем исходном сообщении, что я также обновил другие значения Binding. Пожалуйста, смотрите мое обновление, где я теперь включил свою привязку - person Fiona; 28.06.2012
comment
У вас есть контроль над сервисом? В основном конфигурация вашего клиента в порядке, поэтому я сомневаюсь, что конфигурация службы может быть неправильной. Не могли бы вы просто создать тестовый метод на сервисе, а затем вернуть большие блоки данных › 8192 байта? Я думаю, что вы должны быть в состоянии воспроизвести исключение. - person Toan Nguyen; 28.06.2012