Свойство WCF MaxReceivedMessageSize не принимает - PullRequest
4 голосов
/ 03 апреля 2010

Искал без удачи ...

Я продолжаю получать

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

Это имеет смысл, поэтому я вхожу в конфигурацию сервера и клиента и вносю изменения:

Клиент

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IFileUpload"
           closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transferMode="Streamed" messageEncoding="Text" maxBufferSize="65536" maxReceivedMessageSize="67108864">
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost/services/FileUpload.svc"
          binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFileUpload"
          contract="CFTW.FileUpload.IFileUpload" name="BasicHttpBinding_IFileUpload" />
    </client>
  </system.serviceModel>

Сервер

    <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IFileUpload"

                 transferMode="Streamed" messageEncoding="Text" maxBufferSize="67108864" maxBufferPoolSize="67108864" maxReceivedMessageSize="67108864">

        </binding>
      </basicHttpBinding>

    </bindings>
    <services>
      <service name="BasicHttpBinding_IFileUpload">
        <endpoint address="~/services/FileUpload.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFileUpload"
            contract="CFTW.FileUpload.IFileUpload"></endpoint>
      </service>

    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

Я не уверен, почему это не работает (иначе я бы это исправил :)). Он работает на .NET 4.0 RC.

Ответы [ 3 ]

3 голосов
/ 17 октября 2012

Я только что столкнулся с этой проблемой. Я обнаружил, что мое пользовательское связывание не применяется вообще. Тогда я использовал name = "" в теге привязки. Тогда все начало работать с новыми настройками. Это связано с тем, что .NET 4.0 поставляется с конфигурациями привязки / конечной точки / поведения по умолчанию. Эти настройки по умолчанию имеют name = "". Я просто изменил привязку по умолчанию. Причина, по которой мое пользовательское связывание (с именем) не было применено, связано со значением имени в теге <service> Следует <Namespace.ServiceClassName>.

2 голосов
/ 24 августа 2011

Вам необходимо увеличить атрибут maxReceivedMessageSize в конфигурации клиента для привязки. Кроме того, обязательно установите такое же значение для maxBufferSize. Для буферизованного соединения эти два значения должны быть одинаковыми.

0 голосов
/ 03 декабря 2015

Была такая же проблема, к счастью, во втором проекте, и ее можно сравнить с рабочим проектом. Разница была в том, что в рабочем проекте были установлены дополнительные атрибуты в web.config для привязок сервисов ...

Рабочий образец: httpsTransport maxReceivedMessageSize = "2147483647" maxBufferSize = "2147483647"

Второй проект имел только: httpsTransport

Также выполните поиск в вашем проекте для 65536, как это также определено в configuration.svcinfo и configuration91.svcinfo справочной службы.

...