Мы с коллегами колотили голову над кирпичной стеной, пытаясь решить проблему отправки более 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>
У клиента есть различные тайм-ауты и ограничения. Вы их настроили? –
Эта другая [SO thread] (http://stackoverflow.com/questions/8225736/transfer-large-amount-of-data-in-wcf-service) может помочь. –