Передача больших объемов данных с помощью сервиса wcf

Когда я пытаюсь передать большие данные в WCF, я получаю эту ошибку:

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

Это мое app.config файл:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="NewBinding0" maxBufferSize="52428800" maxBufferPoolSize="52428800">
          <readerQuotas maxStringContentLength="52428800" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="TSO_WCF.Service1">
        <host>
           <baseAddresses>
               <add baseAddress="http://localhost:8732/Design_Time_Addresses/TSO_WCF/Service1/" />
           </baseAddresses>
        </host>
        <!-- Service Endpoints -->
        <!-- Unless fully qualified, address is relative to base address supplied above -->
        <endpoint address="" binding="wsHttpBinding" contract="TSO_WCF.IService1" >
           <identity>
              <dns value="localhost"/>
           </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
       <serviceBehaviors>
          <behavior>
             <serviceMetadata httpGetEnabled="True"/>
             <serviceDebug includeExceptionDetailInFaults="False" />
          </behavior>
       </serviceBehaviors>
    </behaviors>
</system.serviceModel>
<appSettings>
   <add key="Mapping" value="D:\workspace\oddo.app.ldw.tsomanagertool\ProjetTSO\MappingsXML"/>
</appSettings>
</configuration>

2 ответа

Вы должны увеличить MaxStringContentLength на привязке сервера и клиента. В данный момент вы используете значение по умолчанию 8192.

Возможно, вы могли бы изменить привязку / использовать потоковую передачу. Смотрите эту страницу: http://msdn.microsoft.com/en-us/library/ms733742.aspx

Другие вопросы по тегам