BasicHttpBinding.MaxBufferSize Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit la taille maximale (en octets) d'une mémoire tampon qui reçoit les messages du 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
Valeur de propriété
Taille maximale, en octets, d’une mémoire tampon qui stocke des messages pendant leur traitement pour un point de terminaison configuré avec cette liaison. La valeur par défaut est de 65 536 octets.
Exemples
L’exemple suivant définit MaxBufferSize sur 1 000 000 octets.
BasicHttpBinding binding = new BasicHttpBinding();
// set to one million
binding.MaxBufferSize = 1000000;
La valeur de cette propriété peut également être définie dans le fichier de configuration.
Remarques
S’il n’y a pas suffisamment de mémoire dans le pool de mémoires tampons pour stocker le message pendant son traitement, davantage de mémoire doit être allouée à partir du tas CLR, ce qui augmente le traitement de l’opération garbage collection. Une allocation importante de mémoire issue du tas de garbage CLR indique que la taille de mémoire tampon du message est trop petite et qu'il est possible d'améliorer les performances en augmentant la limite.
La valeur de la propriété MaxBufferSize et sa signification est différente selon que les messages sont mis en mémoire tampon ou diffusés sur le canal via lequel ils sont reçus :
Pour les transports mis en mémoire tampon (TransferMode défini sur TransferMode.Buffered), cette valeur est toujours égale à celle spécifiée par la MaxReceivedMessageSize propriété.
Pour les transports transmis en continu (TransferMode défini sur TransferMode.Streamed), seuls les en-têtes SOAP doivent être mis en mémoire tampon pour générer le message. Le corps peut être transmis en continu sur demande. Dans ce cas, MaxBufferSize est inférieur ou égal à MaxReceivedMessageSize, où MaxReceivedMessageSize limite la taille du message global (en-têtes et corps) et MaxBufferSize limite uniquement la taille des en-têtes SOAP.
Les limitations de la taille de la mémoire tampon définies ici ont pour but d'optimiser les performances des échanges de messages. Si un message dépasse la valeur maximale définie pour la mémoire tampon, il n'est pas supprimé. À la place, le gestionnaire demande davantage de mémoire au tas CLR. Le traitement de l’opération garbage collection est par conséquent plus important que dans le cas de l’utilisation de mémoires tampons.
Notes
Les paramètres de MaxBufferSize et MaxReceivedMessageSize sont des paramètres comportementaux locaux. Cela signifie qu'ils ne sont pas transmis à d'autres points de terminaison dans les métadonnées. Si vous générez un proxy pour un service qui limite dans les métadonnées les messages à une taille maximale de 2 Go, le proxy reprend la valeur par défaut de 64 Ko. Les administrateurs locaux peuvent ainsi contrôler les limites de taille des messages et des tampons de messages.