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, pour une mémoire tampon qui reçoit des 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 les messages pendant qu’ils sont traités 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 la mémoire tampon pour stocker le message pendant son traitement, davantage de mémoire doit être allouée à partir du tas CLR, ce qui augmente la surcharge du garbage collection. Une allocation étendue à partir du tas de mémoire mémoire CLR indique que la taille de la mémoire tampon de message est trop petite et que les performances peuvent être améliorées avec une allocation plus importante.
La valeur de la propriété MaxBufferSize et sa signification varient selon que les messages sont mis en mémoire tampon ou diffusées 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 diffusés 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 diffusé en continu à la 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 les limites MaxBufferSize uniquement la taille des en-têtes SOAP.
Les limitations relatives à la taille de mémoire tampon définie ici sont destinées à 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é. Au lieu de cela, plus de mémoire est demandée à partir du tas CLR et cela entraîne plus de surcharge de garbage collection que l’utilisation des mémoires tampons.
Note
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 vers un service avec une taille de message maximale de 2 Go à partir des métadonnées, le proxy a toujours une valeur par défaut de 64 Ko. Cela laisse le contrôle des limites appropriées pour la taille des messages et des mémoires tampons de message dans l’étendue des administrateurs locaux.