У меня есть служба WCF, которая возвращает 1000 записей из базы данных клиенту. У меня есть клиент ASP.NET WCF (я добавил ссылку на сервис в проекте веб-приложения asp.net для использования WCF).
При запуске клиентского приложения я получаю следующее сообщение:
Превышен максимальный размер квоты для входящих сообщений (65536). Чтобы увеличить квоту, используйте свойство MaxReceivedMessageSize соответствующего элемента привязки.
Любая помощь? Как увеличить квоту на размер сообщения?
Ответы:
Вам нужно что-то вроде этого, чтобы увеличить квоты на размер сообщения, в файле App.config или Web.config :
И используйте имя привязки в вашей конфигурации конечной точки, например
Обоснование значений простое, они достаточно велики, чтобы вместить большинство сообщений. Вы можете настроить это число под свои нужды. Низкое значение по умолчанию используется для предотвращения атак типа DOS. Создание 20000000 позволило бы обеспечить эффективную атаку распределенной DOS, размер по умолчанию, равный 64 КБ, потребовал бы очень большого числа клиентов для подавления большинства серверов в наши дни.
источник
Если вы по-прежнему получаете это сообщение об ошибке при использовании тестового клиента WCF, это потому, что у клиента есть отдельная настройка MaxBufferSize .
Чтобы исправить проблему:
Появится список редактируемых настроек, включая MaxBufferSize.
Примечание: автоматически сгенерированные прокси-клиенты также устанавливают MaxBufferSize в 65536 по умолчанию.
источник
Если вы создаете свои привязки WCF динамически, вот код для использования:
источник
Client Test WCF имеет собственную конфигурацию клиента.
Запустите тестовый клиент и прокрутите вниз. Если дважды щелкнуть узел «Файл конфигурации», вы увидите представление XML. Как вы можете видеть
maxReceivedMessageSize
это65536
.Для редактирования щелкните правой кнопкой мыши узел дерева файла конфигурации и выберите «Редактировать с помощью».
SvcConfigEditor
. Когда редактор откроется, разверните узел «Привязки» и дважды щелкните автоматически созданную привязку.Вы можете редактировать все свойства здесь, в том числе
maxReceivedMessageSize
. Когда вы закончите, нажмите Файл - Сохранить .Наконец, когда вы вернетесь в окно тестового клиента WCF, нажмите Инструменты - Параметры .
ПРИМЕЧАНИЕ . Снимите флажок Всегда восстанавливать конфигурацию при запуске служб .
источник
Always regenerate config
опции.Я нашел легкий путь
источник
Я решаю проблему ... следующим образом
источник
Я решил проблему с Bing Maps WPF в своем проекте с помощью CalculateRoute (). Решением в моем случае была установка maxReceivedMessageSize и maxReceivedMessageSize для атрибута «httpTransport» для раздела «customBinding».
Я установил в файле application.config (es. MyApp.config) эту конфигурацию:
источник
источник
Для HTTP:
Для TCP:
ВАЖНЫЙ:
Если вы попытаетесь передать сложный объект, который имеет много связанных объектов (например, древовидную структуру данных, список, который содержит много объектов ...), связь не будет установлена независимо от того, как вы увеличили квоты. В таких случаях вы должны увеличить количество содержащихся объектов:
источник
maxItemsInObjectGraph
было (быстрое) решение для меня. Но, увеличивая это, вы должны подумать о том, является ли лучшим решением для вашего приложения запрашивать данные в виде кусков, в отличие от огромного графа объектов, который может напрягать ресурсы.Для меня все, что мне нужно было сделать, это добавить
maxReceivedMessageSize="2147483647"
в клиент app.config. Сервер остался нетронутым.источник
Еще одна важная вещь, чтобы рассмотреть из моего опыта ..
Я настоятельно советую НЕ максимизировать maxBufferPoolSize, потому что буферы из пула никогда не освобождаются, пока домен приложения (то есть пул приложений) не перезапустится.
Период большого трафика может привести к использованию большого количества памяти и никогда не освобождать ее.
Подробнее здесь:
источник
Не забывайте, что будет учитываться app.config точки входа выполнения, а не тот, который находится в проекте библиотеки классов, управляющем вызовами веб-службы, если он есть.
Например, если вы получили ошибку во время выполнения модульного теста, вам нужно настроить соответствующий конфиг в проекте тестирования.
источник
я получил эту ошибку при использовании этих настроек на web.config
Я установил настройки следующим образом:
источник
bindings
элемент Нейта и разместил его как часть своего ответа. Эти2000000
ценности довольно разные.