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