Назначьте пользовательскую конфигурацию привязки для wsHttpBinding - PullRequest
0 голосов
/ 16 апреля 2020

Я сталкиваюсь с некоторыми проблемами, которые, на мой взгляд, довольно просты.

При попытке отправить "большие" сообщения через WCF я получаю сообщение об ошибке:

Превышен максимальный размер квоты для входящих сообщений (65536). Чтобы увеличить квоту, используйте свойство MaxReceivedMessageSize соответствующего элемента привязки.

Чтобы исправить это, я создал настраиваемую конфигурацию привязки с более высоким значением MaxReceivedMessageSize. Но я все еще получаю сообщение об ошибке, как будто значение не читается.

Вот мой App.config сервера:

<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="largeBinding" maxReceivedMessageSize="2147483647">
          <readerQuotas maxArrayLength="2147483647"/>
        </binding>
      </wsHttpBinding>
    </bindings>
    <services>
      <service name="EMS.Services.TradeController">
       <endpoint address="http://localhost:9002/TradeService"
                  binding="wsHttpBinding"
                  bindingConfiguration="largeBinding"
                  contract="EMS.Contracts.Services.ITradeService"/>
      </service>
    </services>
  </system.serviceModel>

А вот мой Client App.config:

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="largeBinding" maxReceivedMessageSize="2147483647">
      <readerQuotas maxArrayLength="2147483647"/>
    </binding>
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="http://localhost:9002/TradeService"
            binding="wsHttpBinding"
            bindingConfiguration="largeBinding"
            contract="EMS.Contracts.Services.ITradeService"/>
</client>

Не хватает ли части, чтобы правильно назначить привязку?

1 Ответ

0 голосов
/ 17 апреля 2020

Конфигурация клиента автоматически генерируется инструментом Adding Service Reference? Я подозреваю, использует ли клиентский прокси конечную точку службы, созданную Wshttpbinding. С вашей текущей конфигурацией, похоже, ничего нет.
Кроме того, рассмотрите возможность настройки других атрибутов

     <wsHttpBinding>
        <binding name="largeBinding" allowCookies="true"
 maxReceivedMessageSize="20000000"
 maxBufferSize="20000000"
 maxBufferPoolSize="20000000">
          <readerQuotas maxDepth="32"
 maxArrayLength="200000000"
 maxStringContentLength="200000000"/>
        </binding>
      </wsHttpBinding>

Также необходимо настроить свойство MaxBufferSize и ReaderQuotas.
MaxBufferSize
ReaderQuotas
Не стесняйтесь дайте мне знать, если проблема все еще существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...