BasicHttpBinding.MaxBufferSize Свойство

Определение

Получает или задает максимальный размер в байтах для буфера, получающего сообщения из канала.

public:
 property int MaxBufferSize { int get(); void set(int value); };
public int MaxBufferSize { get; set; }
member this.MaxBufferSize : int with get, set
Public Property MaxBufferSize As Integer

Значение свойства

Максимальный размер буфера в байтах, в который хранятся сообщения во время их обработки для конечной точки, настроенной с этой привязкой. Значение по умолчанию - 65 536 байт.

Примеры

В следующем примере для MaxBufferSize задано значение 1000 000 байт.

BasicHttpBinding binding = new BasicHttpBinding();

// set to one million
binding.MaxBufferSize = 1000000;

Значение этого свойства также можно задать в файле конфигурации.

Комментарии

Если в буфере недостаточно памяти для хранения сообщения во время обработки, необходимо выделить больше памяти из кучи СРЕДЫ CLR, что увеличивает затраты на сборку мусора. Обширное выделение из кучи мусора СРЕДЫ CLR свидетельствует о том, что размер буфера сообщений слишком мал, а производительность может быть улучшена с большим выделением.

Значение свойства MaxBufferSize и его значение отличается в зависимости от того, буферизуются ли сообщения или передаются в канал, через который они получают:

  • Для буферизованного транспорта (TransferMode задано TransferMode.Bufferedзначение ), это значение всегда равно значению, указанному свойством MaxReceivedMessageSize .

  • Для потоковых транспортов (TransferMode задано TransferMode.Streamedзначение ), для создания сообщения необходимо буферивировать только заголовки SOAP. Тело можно передавать по запросу. В этом случае MaxBufferSize меньше или равно MaxReceivedMessageSize, где MaxReceivedMessageSize ограничивает размер общего сообщения (заголовков и текста) и MaxBufferSize ограничивает только размер заголовков SOAP.

Ограничения на размер буфера, заданные здесь, предназначены для оптимизации производительности обмена сообщениями. Если сообщение превышает максимальное значение для буфера, оно не удаляется. Вместо этого требуется больше памяти из кучи среды CLR, и это вызывает больше затрат на сборку мусора, чем использование буферов.

Note

Параметры MaxBufferSize и MaxReceivedMessageSize являются локальными параметрами поведения. Это означает, что они не передаются другим конечным точкам в метаданных. Если вы создаете прокси-сервер в службу с максимальным размером 2 ГБ из метаданных, прокси-сервер по-прежнему имеет значение по умолчанию 64 КБ. Это оставляет контроль над соответствующими границами для размера буфера сообщений и сообщений в области локальных администраторов.

Применяется к