BasicHttpBinding.MaxBufferSize BasicHttpBinding.MaxBufferSize BasicHttpBinding.MaxBufferSize BasicHttpBinding.MaxBufferSize Property

Definition

Ruft die maximale Größe in Byte für einen Puffer ab, der Nachrichten von einem Kanal empfängt. Gets or sets the maximum size, in bytes, for a buffer that receives messages from the channel.

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. The maximum size, in bytes, of a buffer that stores messages while they are processed for an endpoint configured with this binding. Der Standardwert ist 65.536 Bytes. The default value is 65,536 bytes.

Beispiele

Im folgenden Beispiel wird MaxBufferSize auf 1.000.000 Byte.The following example sets MaxBufferSize to 1,000,000 bytes.

BasicHttpBinding binding = new BasicHttpBinding();

// set to one million
binding.MaxBufferSize = 1000000;

Der Wert dieser Eigenschaft kann auch in der Konfigurationsdatei festgelegt werden.The value of this property can also be set in the configuration file.

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.If there is not sufficient memory in the buffer to store the message while it is processed, more memory must be allocated from the CLR heap, which increases the garbage collection overhead. 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.Extensive allocation from the CLR garbage heap is an indication that the message buffer size is too small and that performance can be improved with a larger allocation.

Der Wert der Eigenschaft MaxBufferSize und dessen Bedeutung unterscheidet sich je nach, ob die Nachrichten werden gepuffert oder gestreamt werden, auf dem Kanal, über die sie empfangen werden:The value of the MaxBufferSize property and its significance is different depending on whether the messages are being buffered or streamed on the channel through which they are being received:

Für gepufferte Transporte (TransferMode festgelegt auf Buffered).For buffered transports, (TransferMode set to Buffered). Dieser Wert entspricht immer dem, der von der MaxReceivedMessageSize angegeben wurde.This value is always equal to that specified by the MaxReceivedMessageSize.

Bei gestreamten Übertragungen (TransferMode auf Streamed festgelegt) müssen nur die SOAP-Header gepuffert werden, um die Nachricht zu erstellen.For streamed transports, (TransferMode set to Streamed), only the SOAP headers must be buffered to generate the message. Der Text kann bei Bedarf gestreamt werden.The body can be streamed in on-demand. In diesem Fall MaxBufferSize ist kleiner als oder gleich MaxReceivedMessageSize, wobei MaxReceivedMessageSize umschließt die Größe der gesamten Nachricht (Header und Text) und MaxBufferSize umschließt, nur die Größe der SOAP-Header.In this case, MaxBufferSize is less than or equal to MaxReceivedMessageSize, where MaxReceivedMessageSize bounds the size of the overall message (headers and body) and MaxBufferSize bounds only the size of the SOAP headers.

Die hier vorgenommenen Einschränkungen der Puffergröße dienen zum Optimieren der Leistung des Nachrichtenaustauschs.The limitations on buffer size set here are for optimizing the performance of message exchanges. Wenn eine Nachricht den maximal zulässigen Wert für den Puffer überschreitet, wird sie nicht verworfen.If a message exceeds the maximum value set for the buffer, it is not dropped. Stattdessen wird mehr Speicherplatz aus dem CLR-Heap angefordert, was die Auslastung der Garbage Collection stärker erhöht als die Verwendung der Puffer.Instead, more memory is requested from the CLR heap and this incurs more garbage collection overhead than using the buffers.

Hinweis

Die Einstellungen für MaxBufferSize und MaxReceivedMessageSize, stellen lokale verhaltenseinstellungen.The settings for MaxBufferSize and MaxReceivedMessageSize, are local behavioral settings. Dies bedeutet, dass sie nicht in Metadaten an andere Endpunkte übertragen werden.This means that they are not transmitted to other endpoints in metadata. 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.If you generate a proxy to a service with a maximum message size of 2GB from metadata, the proxy still has a default value of 64K. Lokale Administratoren können so die entsprechenden Grenzwerte für Nachrichten und Nachrichtenpuffer kontrollieren.This leaves control of the appropriate bounds for message and message buffer size in the scope of local administrators.

Gilt für: