BasicHttpBinding.MaxBufferSize Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt de maximale grootte, in bytes, opgehaald of ingesteld voor een buffer die berichten van het kanaal ontvangt.
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
Waarde van eigenschap
De maximale grootte, in bytes, van een buffer waarin berichten worden opgeslagen terwijl ze worden verwerkt voor een eindpunt dat is geconfigureerd met deze binding. De standaardwaarde is 65.536 bytes.
Voorbeelden
In het volgende voorbeeld wordt MaxBufferSize ingesteld op 1000.000 bytes.
BasicHttpBinding binding = new BasicHttpBinding();
// set to one million
binding.MaxBufferSize = 1000000;
De waarde van deze eigenschap kan ook worden ingesteld in het configuratiebestand.
Opmerkingen
Als er onvoldoende geheugen in de buffer is om het bericht op te slaan terwijl het wordt verwerkt, moet er meer geheugen worden toegewezen vanuit de CLR-heap, waardoor de overhead van de garbagecollection toeneemt. Uitgebreide toewijzing van de CLR garbage heap is een indicatie dat de grootte van de berichtbuffer te klein is en dat de prestaties kunnen worden verbeterd met een grotere toewijzing.
De waarde van de eigenschap MaxBufferSize en de betekenis ervan verschilt, afhankelijk van of de berichten worden gebufferd of gestreamd op het kanaal waarmee ze worden ontvangen:
Voor gebufferde transporten (TransferMode ingesteld op TransferMode.Buffered), is deze waarde altijd gelijk aan de waarde die is opgegeven door de MaxReceivedMessageSize eigenschap.
Voor gestreamde transporten (TransferMode ingesteld op TransferMode.Streamed), moeten alleen de SOAP-headers worden gebufferd om het bericht te genereren. De hoofdtekst kan op aanvraag worden gestreamd. In dit geval is MaxBufferSize kleiner dan of gelijk aan MaxReceivedMessageSize, waarbij MaxReceivedMessageSize de grootte van het algemene bericht (kopteksten en hoofdteksten) en MaxBufferSize alleen de grootte van de SOAP-headers begrenst.
De beperkingen voor de buffergrootte die hier zijn ingesteld, zijn bedoeld voor het optimaliseren van de prestaties van berichtuitwisselingen. Als een bericht de maximumwaarde overschrijdt die is ingesteld voor de buffer, wordt het niet verwijderd. In plaats daarvan wordt meer geheugen aangevraagd bij de CLR-heap en dit zorgt voor meer overhead voor garbagecollection dan het gebruik van de buffers.
Note
De instellingen voor MaxBufferSize en MaxReceivedMessageSize zijn lokale gedragsinstellingen. Dit betekent dat ze niet worden verzonden naar andere eindpunten in metagegevens. Als u een proxy genereert naar een service met een maximale berichtgrootte van 2 GB uit metagegevens, heeft de proxy nog steeds een standaardwaarde van 64.000. Hierdoor blijft de controle over de juiste grenzen voor de grootte van de bericht- en berichtbuffer in het bereik van lokale beheerders.