BasicHttpBinding.MaxBufferSize Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die maximale Größe in Byte für einen Puffer ab, der Nachrichten von einem Kanal empfängt.
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
Eigenschaftswert
Die maximale Größe eines Puffers in Byte, in dem Nachrichten gespeichert werden, während sie für einen mit dieser Bindung konfigurierten Endpunkt verarbeitet werden. Der Standardwert ist 65.536 Bytes.
Beispiele
Im folgenden Beispiel wird MaxBufferSize auf 1.000.000 Bytes festgelegt.
BasicHttpBinding binding = new BasicHttpBinding();
// set to one million
binding.MaxBufferSize = 1000000;
Der Wert dieser Eigenschaft kann auch in der Konfigurationsdatei festgelegt werden.
Hinweise
Wenn die Speicherkapazität des Puffers zum Speichern der Nachricht während der Verarbeitung nicht ausreicht, muss aus dem CLR-Heap zusätzliche Speicherkapazität zugewiesen werden. Dadurch wird die Auslastung der Garbage Collection erhöht. Eine umfangreiche Zuweisung aus dem CLR-Heap der Garbage Collection weist darauf hin, dass die Größe des Nachrichtenpuffers nicht ausreichend ist und dass die Leistung durch eine größere Zuweisung infolge einer höheren Zuweisung verbessert werden kann.
Der Wert der MaxBufferSize-Eigenschaft und deren Bedeutung unterscheiden sich je nachdem, ob die Nachrichten auf dem Kanal gepuffert oder gestreamt werden, über den sie empfangen werden:
Für pufferte Transporte (TransferMode auf ) TransferMode.Bufferedist dieser Wert immer gleich dem wert, der durch die MaxReceivedMessageSize Eigenschaft angegeben wird.
Bei gestreamten Übertragungen (TransferMode auf TransferMode.Streamed festgelegt) müssen nur die SOAP-Header gepuffert werden, um die Nachricht zu erstellen. Der Text kann bei Bedarf gestreamt werden. In diesem Fall ist MaxBufferSize kleiner oder gleich MaxReceivedMessageSize, wobei MaxReceivedMessageSize die Größe der Gesamtnachricht (Kopfzeilen und Textkörper) und MaxBufferSize nur die Größe der SOAP-Header begrenzt.
Die hier vorgenommenen Einschränkungen der Puffergröße dienen zum Optimieren der Leistung des Nachrichtenaustauschs. Wenn eine Nachricht den maximal zulässigen Wert für den Puffer überschreitet, wird sie nicht verworfen. Stattdessen wird mehr Speicherplatz aus dem CLR-Heap angefordert, was die Auslastung der Garbage Collection stärker erhöht als die Verwendung der Puffer.
Hinweis
Die Einstellungen für MaxBufferSize und MaxReceivedMessageSize sind lokale Verhaltenseinstellungen. Dies bedeutet, dass sie nicht in Metadaten an andere Endpunkte übertragen werden. Wenn Sie einen Dienstproxy mit einer maximalen Nachrichtengröße von 2 GB für Metadaten erstellen, weist der Proxy auch weiterhin einen Standardwert von 64 KB auf. Lokale Administratoren können so die entsprechenden Grenzwerte für Nachrichten und Nachrichtenpuffer kontrollieren.