BasicHttpBinding.MaxBufferSize Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el tamaño máximo, en bytes, para un búfer que recibe mensajes del canal.
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
Valor de propiedad
El tamaño máximo, en bytes, de un búfer que almacena los mensajes mientras se procesan para un extremo configurado con este enlace. El valor predeterminado es 65.536 bytes.
Ejemplos
En el ejemplo siguiente se establece MaxBufferSize en 1000 000 bytes.
BasicHttpBinding binding = new BasicHttpBinding();
// set to one million
binding.MaxBufferSize = 1000000;
El valor de esta propiedad también puede establecerse en el archivo de configuración.
Comentarios
Si no hay memoria suficiente en el grupo de búferes para almacenar el mensaje mientras se procesa, se debe asignar memoria adicional del montón CLR, lo que aumenta la carga de recolección de elementos no utilizados. La amplia asignación del montón de elementos no utilizados de CLR es una indicación de que el tamaño búfer de mensajes es demasiado pequeño y de que el rendimiento podría mejorar con una asignación mayor.
El valor de la propiedad MaxBufferSize y su significado es diferente en función de si los mensajes se almacenan en búfer o se transmiten en el canal a través del cual se reciben:
Para los transportes almacenados en búfer (TransferMode establecido en TransferMode.Buffered), este valor siempre es igual al especificado por la MaxReceivedMessageSize propiedad .
Para transportes transmitidos, (TransferMode establecido como TransferMode.Streamed) sólo se deben almacenar en búfer los encabezados SOAP para generar el mensaje. El cuerpo se puede transmitir a petición. En este caso, MaxBufferSize es menor o igual que MaxReceivedMessageSize, donde MaxReceivedMessageSize enlaza el tamaño del mensaje general (encabezados y cuerpo) y MaxBufferSize enlaza solo el tamaño de los encabezados SOAP.
Las limitaciones en el tamaño de búfer establecidas aquí son para optimizar el rendimiento de intercambios de mensajes. Si un mensaje supera el conjunto de valores máximos para el búfer, no se coloca. En su lugar, se solicita más memoria del montón CLR y esto ocasiona más sobrecarga de recolección de elementos no utilizados que utilizar los búferes.
Nota
La configuración de MaxBufferSize y MaxReceivedMessageSize son configuraciones de comportamiento locales. Esto significa que no se transmiten a otros puntos de conexión en metadatos. Si genera un proxy para un servicio con un tamaño máximo de mensaje de 2GB de metadatos, el proxy tendrá aún un valor predeterminado de 64 KB. Esto deja el control de los límites adecuados para mensajes y tamaño de búfer de mensajes en manos de los administradores locales.