из моего приложения Silverlight 3 я использую WCF-сервис. Я передаю список целых чисел в службу. Этот список может получить довольно большой> 10 тыс. Записей. В конце концов, я получаю сообщение от службы, когда список становится большим.
Я знаю, я могу установить значение, чтобы разрешить передачу большего количества данных в файл ServiceReference.ClientConfig, но я не знаю, где и какое свойство устанавливать.
Поскольку настройка выполняется на сервере, я теперь отображаю конфигурацию сервера:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
...
</appSettings>
<system.web>
<compilation debug="true" />
<httpRuntime maxRequestLength="1048576"
executionTimeout="200" />
</system.web>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="silverlightFaults" type="DiscoDataSource.SilverlightFaultBehavior, DiscoDataSource, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<bindings>
<basicHttpBinding>
<binding name="MyBinding" closeTimeout="10:00:00" openTimeout="10:00:00"
receiveTimeout="10:00:00" sendTimeout="10:00:00" maxBufferSize="6553600"
maxBufferPoolSize="6553600" maxReceivedMessageSize="6553600" >
<readerQuotas maxArrayLength="2147483647"/>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="DiscoDataSource.Service1Behavior"
name="DiscoDataSource.Service1">
<endpoint address="" behaviorConfiguration="DiscoBehavior" binding="basicHttpBinding"
bindingConfiguration="MyBinding" name="standardEndPoint" contract="DiscoDataSource.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/Design_Time_Addresses/DiscoDataSource/Service1/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="DiscoBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483646" />
<silverlightFaults />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="DiscoDataSource.Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
РЕДАКТИРОВАТЬ: я экспериментировал с размером списка, который я отправляю (это словарь с объектом всегда нулевым). После 60 тыс. Элементов (~ 0,5 МБ) возникает ошибка. Что ДЕЙСТВИТЕЛЬНО беспокоит меня, так это то, что ошибка - печально известная NotFound-Error - хотя я изменил поведение сообщения об ошибках (которое работает для исключений, которые вызываются кодом службы)
Я уже добавил ответы bnkdev и marc_s, но, к сожалению, похоже, есть еще один барьер.
Кто-нибудь может мне помочь?
Спасибо заранее,
Frank