Превышен максимальный размер квоты для входящих сообщений (65536) - PullRequest
64 голосов
/ 28 марта 2011

Я получаю это исключение при создании области видимости для нескольких таблиц. Все эти таблицы имеют огромный дизайн

<bindings>
    <wsHttpBinding>
        <binding name="wsHttpBinding_ISyncServices" closeTimeout="00:10:00"
            openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
            transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
            <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
                maxArrayLength="2147483647" maxBytesPerRead="2147483647"
                maxNameTableCharCount="2147483647" />
            <reliableSession ordered="true" inactivityTimeout="00:10:00"
                enabled="false" />
            <security mode="Message">
                <transport clientCredentialType="Windows"
                    proxyCredentialType="None" realm="">
                    <extendedProtectionPolicy policyEnforcement="Never" />
                </transport>
                <message clientCredentialType="Windows"
                    negotiateServiceCredential="true" algorithmSuite="Default" />
            </security>
        </binding>
    </wsHttpBinding>
</bindings>

Я сделал MaxReceivedMessageSize до 2147483647 но все же это дает мне исключение в этой строке

 client.GetTableDescription(scopeName, syncTable)

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

Ответы [ 8 ]

102 голосов
/ 28 марта 2011

Согласно ответу на этот вопрос

Вам понадобится что-то вроде этого:

<bindings>
     <basicHttpBinding>
         <binding name="basicHttp" allowCookies="true"
 maxReceivedMessageSize="20000000"
 maxBufferSize="20000000"
 maxBufferPoolSize="20000000">
             <readerQuotas maxDepth="32"
 maxArrayLength="200000000"
 maxStringContentLength="200000000"/>
         </binding>
     </basicHttpBinding> </bindings>

Пожалуйста, прочитайте также комментарии к принятому ответутам они содержат ценный вклад.

12 голосов
/ 28 марта 2011

Вам также нужно увеличить maxBufferSize . Также обратите внимание, что вам может потребоваться увеличить читатель квот .

9 голосов
/ 28 марта 2011

Необходимо внести изменения в конфигурацию привязки (в файле app.config) на СЕРВЕРЕ и КЛИЕНТЕ, иначе это не вступит в силу.

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding maxReceivedMessageSize="2147483647 " max...=... />
        </basicHttpBinding>
       </bindings>
</system.serviceModel>
6 голосов
/ 22 августа 2015

Если вы используете CustomBinding, вам лучше внести изменения в элемент httptransport.Установите его как

<customBinding> <binding ...> ... <httpsTransport maxReceivedMessageSize="2147483647"/> </binding> </customBinding>

5 голосов
/ 10 апреля 2015

Это сработало для меня:

 Dim binding As New WebHttpBinding(WebHttpSecurityMode.Transport)
 binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None
 binding.MaxBufferSize = Integer.MaxValue
 binding.MaxReceivedMessageSize = Integer.MaxValue
 binding.MaxBufferPoolSize = Integer.MaxValue
2 голосов
/ 10 сентября 2017

Внесение изменений в конфигурацию не помогло мне.Следующее сработало хорошо, хотя

private YourAPIClient GetClient()
    {
        Uri baseAddress = new Uri(APIURL);
        var binding = new BasicHttpBinding();
        binding.MaxReceivedMessageSize = 20000000;
        binding.MaxBufferSize = 20000000;
        binding.MaxBufferPoolSize = 20000000;
        binding.AllowCookies = true;
        var readerQuotas = new XmlDictionaryReaderQuotas();
        readerQuotas.MaxArrayLength = 20000000;
        readerQuotas.MaxStringContentLength = 20000000;
        readerQuotas.MaxDepth = 32;
        binding.ReaderQuotas = readerQuotas;
        if (baseAddress.Scheme.ToLower() == "https")
            binding.Security.Mode = BasicHttpSecurityMode.Transport;
        var client = new YourAPIClient(binding, new EndpointAddress(baseAddress));
        return client;
    }
0 голосов
/ 12 февраля 2019

Для меня настройки в web.config / app.config были проигнорированы.В итоге я создал свою привязку вручную, что решило проблему для меня:

var httpBinding = new BasicHttpBinding()
{
    MaxBufferPoolSize = Int32.MaxValue,
    MaxBufferSize = Int32.MaxValue,
    MaxReceivedMessageSize = Int32.MaxValue,
    ReaderQuotas = new XmlDictionaryReaderQuotas()
    {
        MaxArrayLength = 200000000,
        MaxDepth = 32,
        MaxStringContentLength = 200000000
    }
};
0 голосов
/ 19 августа 2015

Мое решение состояло в том, чтобы использовать параметр "-OutBuffer 2147483647" в моем запросе, который является частью общих параметров. PS C:> Get-Help about_CommonParameters -Full

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