WCF: как установить квоту MaxReceivedMessageSize - PullRequest
1 голос
/ 18 октября 2011

У меня есть служба WCF. При запуске клиентского приложения я получаю следующее сообщение

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

Также я добавил свойство MaxReceivedMessageSize в связанных конфигурациях в клиентских и серверных проектах.

Моя конфигурация в клиентском приложении:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="RPBasicHttpBinding" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
          <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:40003/PersonWcfService.svc/PersonServices"
        binding="basicHttpBinding"
        contract="RP.Common.ServiceContract.IPersonService" name="BasicHttpBinding_IPersonService">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>

Моя конфигурация в проекте WCF:

<system.serviceModel>
    <services>
      <service name="RP.WcfService.PersonWcfService" behaviorConfiguration="RP.WcfServiceBehaviour">
        <endpoint address="PersonServices" binding="basicHttpBinding" bindingConfiguration="RPBasicHttpEndpointBinding" contract="RP.Common.ServiceContract.IPersonService" />
      </service>
    </services>
    <behaviors>
    <serviceBehaviors>
      <behavior name="RP.WcfServiceBehaviour">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="RPBasicHttpEndpointBinding" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
          <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>

Где другое, тогда я должен установить свойство MaxReceivedMessageSize, чтобы увеличить квоту размера сообщения?

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Разве вы не пропустили bindingConfiguration="RPBasicHttpBinding" в своей конфигурации конечной точки на стороне клиента ... и, таким образом, получаете конфигурацию по умолчанию для базового HTTBBinding вместо указанной конфигурации?

1 голос
/ 18 октября 2011

После того, как вы изменили конфигурацию для сервера и потребителей, обязательно перезапустите эти процессы (перезапустите службы, перезапустите пулы приложений и т. Д.).

Я также предлагаю вам не запускаться под localhost.Localhost может обойти множество настроек и может затруднить решение проблем.

...