WCF - конфигурация для пользовательского связывания - PullRequest
1 голос
/ 08 января 2011

Я пытаюсь подключить пользовательский кодировщик сообщений в конвейер WCF через конфигурацию.Ранее я использовал стандартную «NetTcpBinding», для которой мой файл конфигурации выглядел как

<bindings>
      <netTcpBinding>
         <binding name="DefaultNetTcpBinding"
                 maxBufferSize="26214400"
                 maxReceivedMessageSize="26214400"
                 maxBufferPoolSize="26214400"
                 listenBacklog="1000"
                 maxConnections="1000"
                 closeTimeout="00:01:00"
                 openTimeout="00:10:00"
                 receiveTimeout="00:01:30"
                 sendTimeout="00:01:00">
          <security mode="None"/>
          <reliableSession ordered="true" inactivityTimeout="00:01:30" enabled="true"/>
        </binding>
      </netTcpBinding>
</bindings>

Для подключения к пользовательскому кодировщику я попытался следовать пользовательской конфигурации привязки

<bindings>
      <customBinding>
          <binding name="compactBinding">
              <compactMessageEncoding>
                          <binaryMessageEncoding/>
              </compactMessageEncoding>
              <tcpTransport />
          </binding>
      </customBinding>
  </bindings>

Itработает отлично.Но я все еще хочу, чтобы мои прежние настройки, такие как maxBufferSize, maxReceivedMessageSize, maxBufferPoolSize и т. Д. Кажется, элемент <binding> в <customBinding> имеет только closeTimeout, openTimeout, receiveTimeout, sendTimeout.

Как передать другую информацию?

Спасибо

Ответы [ 3 ]

6 голосов
/ 08 января 2011

Попробуйте добавить HttpTransportBindingElement. Я думаю, что это поможет вам. Вот ссылка .

1 голос
/ 25 февраля 2011
<customBinding>
      <binding>
       ...
        <tcpTransport listenBacklog ="100" maxBufferPoolSize ="524288" maxBufferSize ="2147483647" maxReceivedMessageSize ="2147483647"/>
       ...
      </binding>
</customBinding>
0 голосов
/ 13 марта 2018

Попробуйте добавить конфигурацию в коде так:

((CustomBinding)servicio.Endpoint.Binding).Elements.Find<TransportBindingElement>().MaxReceivedMessageSize = int.MaxValue;

А также добавить читатель Quotas в web.config:

<readerQuotas maxDepth="90000" maxStringContentLength="2147483647"
                         maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...