2013-05-08 4 views
2

Мы с коллегами колотили голову над кирпичной стеной, пытаясь решить проблему отправки более 8192 байт данных в веб-службу. Я пробовал создать простой проект WCF, чтобы проверить отправку некоторых данных, и все же он все еще терпит неудачу при 8192 байтах. Я прочитал сотни веб-страниц и внес изменения в файл web.config, чтобы убедиться, что элементы достаточно велики, но он по-прежнему не работает.Невозможно увеличить максимальную длину содержимого строки (8192)

Любые предложения будут оценены.

Мы тестируем службу с использованием IIS Express на локальном хосте в качестве веб-сервера и используем WCFTestClient для отправки данных в Сервис. Мы также попытались использовать Storm в качестве клиента для отправки данных в веб-службу.

<?xml version="1.0"?> 
<configuration> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <client> 
     <endpoint binding="basicHttpBinding" bindingConfiguration="NewBinding0" 
     contract="IService1" name="ClientEndPointName" /> 
    </client> 
    <services> 
     <service name="Service1"> 
     <endpoint address="http://localhost:2787" binding="basicHttpBinding" 
      bindingConfiguration="NewBinding0" name="DROServiceX" bindingName="DROBindingName" 
      contract="IService1" isSystemEndpoint="false" /> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="NewBinding0" transferMode="Buffered"> 
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="true"/> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" 
    multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

</configuration> 
+0

У клиента есть различные тайм-ауты и ограничения. Вы их настроили? –

+0

Эта другая [SO thread] (http://stackoverflow.com/questions/8225736/transfer-large-amount-of-data-in-wcf-service) может помочь. –

ответ

0

Необходимо настроить это на стороне сервера и клиента. Если один из параметров не настроен правильно, запросы не будут выполнены. Ваш сервер настроен правильно, поэтому вы должны посмотреть на конфигурацию клиента. Если вы действительно знаете, что нужно знать, начните трассировку WCF, чтобы узнать, что произойдет.

WCF Tracing MSDN

Смежные вопросы