Обойти ограничения MaxReceivedMessageSize - PullRequest
0 голосов
/ 19 сентября 2011

Я пишу консольное приложение, которое ежедневно загружает отчеты с внешнего сервера через API.У меня проблемы с ограничением размера MaxReceivedMessageSize, так как я всегда превышаю установленное значение (в app.config).

Это значение, похоже, не может быть сброшено, так как я пытался сделать это программно, и оно даже начинается с того места, где оно было остановлено при перезагрузке компьютера.

Есть ли способ обойти это?Ниже приведен файл app.config, в котором установлены значения:

</p> <pre><code><binding name="ReportingSoap" closeTimeout="00:30:00" openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="00:30:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="64000" maxBufferPoolSize="524288" maxReceivedMessageSize="1000000" messageEncoding="Text" textEncoding="utf-8" transferMode="Streamed" useDefaultWebProxy="true"> <readerQuotas maxDepth="64" maxStringContentLength="2000000" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> <message clientCredentialType="UserName" algorithmSuite="Default"/> </security>

1 Ответ

0 голосов
/ 19 сентября 2011

На стороне сервера определите serviceBehaviours как:

<serviceBehaviours>
      <behavior name="servicebehaviour">
           <dataContractSerializer maxItemsInObjectGraph="655360000" />
      </behavior>
</serviceBehaviours>

И используйте его в метке обслуживания:

<service behaviorConfiguration="servicebehaviour"  ....>

Аналогично, на стороне клиента выопределить endpointBehaviors как:

<endpointBehaviors>
      <behavior name="custombehaviour">
           <dataContractSerializer maxItemsInObjectGraph="655360000" />
      </behavior>
</endpointBehaviors>

И использовать это в endpoint:

<endpoint behaviorConfiguration="custombehaviour" ...../>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...