TransportkontingenteTransport Quotas

Transportkontingente sind ein Richtlinienmechanismus für die Entscheidung, wann eine Verbindung übermäßige Ressourcen belegt.Transport quotas are a policy mechanism for deciding when a connection is consuming excessive resources. Ein Kontingent ist eine harte Grenze, die eine Nutzung zusätzlicher Ressourcen nach Überschreiten des Kontingentwerts verhindert.A quota is a hard limit that prevents the use of additional resources once the quota value is exceeded. Transportkontingente verhindern entweder böswillige oder unbeabsichtigte Denial-of-Service-Angriffe.Transport quotas prevent either malicious or unintentional denial of service attacks.

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Transporte verfügen über Standardkontingentwerte, die auf einer konservativen Speicherbelegung von Ressourcen basieren. transports have default quota values that are based on a conservative allocation of resources. Diese Standardwerte sind für eine Entwicklungsumgebung und für kleine Installationsszenarien geeignet.These default values are suitable for development environments and small installation scenarios. Dienstadministratoren sollten Transportkontingente prüfen und individuelle Kontingentwerte anpassen, wenn einer Installation die Ressourcen ausgehen oder wenn Verbindungen eingeschränkt werden, obwohl zusätzliche Ressourcen zur Verfügung stehen.Service administrators should review transport quotas and tune individual quota values if an installation is running out of resources or if connections are being limited despite the availability of additional resources.

Typen von TransportkontingentenTypes of Transport Quotas

WCFWCF-Transporte verfügen über drei Typen von Kontingenten: transports have three types of quotas:

  • Timeouts DOS-Angriffe, die Schwächung von Ressourcen für längere Zeit zu verringern.Timeouts mitigate denial of service attacks that rely on tying up resources for an extended period of time.

  • Speicherbelegungsgrenzen zu verhindern, dass eine einzelne Verbindung Systemspeicher aufbraucht und einen Dienst zu anderen Verbindungen verweigert.Memory allocation limits prevent a single connection from exhausting system memory and denying service to other connections.

  • Grenzwerte für sammlungsgröße begrenzen den Verbrauch von Ressourcen, die indirekt Arbeitsspeicher belegen oder beschränkt zur Verfügung.Collection size limits bound the consumption of resources that indirectly allocate memory or are in limited supply.

TransportkontingentbeschreibungenTransport Quota Descriptions

In diesem Abschnitt werden die Transportkontingente beschrieben, die für Standard-WCFWCF-Transporte zur Verfügung stehen: HTTP(S), TCP/IP und Named Pipes.This section describes the transport quotas available for the standard WCFWCF transports: HTTP(S), TCP/IP, and named pipes. Benutzerdefinierte Transporte können eigene konfigurierbare Kontingente aufweisen, die nicht in dieser Liste enthalten sind.Custom transports can expose their own configurable quotas not included in this list. Weitere Informationen über diese Kontingente finden Sie in der Dokumentation zum benutzerdefinierten Transport.Consult the documentation for a custom transport to find out about its quotas.

Jede Kontingenteinstellung verfügt über einen Typ, einen minimalen Wert und einen Standardwert.Each quota setting has a type, minimum value, and default value. Der Maximalwert eines Kontingents wird von seinem Typ beschränkt.The maximum value of a quota is limited by its type. Aufgrund von Computereinschränkungen ist es nicht immer möglich, ein Kontingent auf seinen Maximalwert festzulegen.Due to machine limitations, it is not always possible to set a quota to its maximum value.

nameName TypType Min.-Min.

Wertvalue
StandardDefault

Wertvalue
BeschreibungDescription
ChannelInitializationTimeout TimeSpanTimeSpan 1 Teilstrich1 tick 5 Sek.5 sec Maximale Zeit für das Warten darauf, dass eine Verbindung die Präambel während des anfänglichen Lesens sendet.Maximum time to wait for a connection to send the preamble during the initial read. Diese Daten werden empfangen, bevor die Authentifizierung eintritt.This data is received before authentication occurs. Diese Einstellung ist im Allgemeinen viel kleiner als der ReceiveTimeout-Kontingentwert.This setting is generally much smaller than the ReceiveTimeout quota value.
CloseTimeout TimeSpanTimeSpan 00 1 Min.1 min Maximale Zeit für das Warten darauf, dass eine Verbindung geschlossen wird, bevor der Transport eine Ausnahme auslöst.Maximum time to wait for a connection to close before the transport raises an exception.
ConnectionBufferSize Ganze ZahlInteger 11 8 kB8 KB Größe der Übertragungs- und Empfangspuffer des zugrunde liegenden Transports, in Bytes,.Size, in bytes, of the transmit and receive buffers of the underlying transport. Eine Erhöhung der Puffergröße kann beim Senden großer Nachrichten den Durchsatz erhöhen.Increasing the buffer size can improve throughput when sending large messages.
IdleTimeout TimeSpanTimeSpan 00 2 Min.2 min Maximale Zeit, die eine zusammengeführte Verbindung im Leerlauf bleiben kann, bevor sie geschlossen wird.Maximum time a pooled connection can remain idle before being closed.

Diese Einstellung gilt nur für zusammengeführte Verbindungen.This setting only applies to pooled connections.
LeaseTimeout TimeSpanTimeSpan 00 5 Min.5 min Maximale Lebensdauer einer aktiven zusammengeführten Verbindung.Maximum lifetime of an active pooled connection. Nachdem die angegebene Zeit verstrichen ist, schließt die Verbindung, sobald die aktuelle Anforderung verarbeitet ist.After the specified time elapses, the connection closes once the current request is serviced.

Diese Einstellung gilt nur für zusammengeführte Verbindungen.This setting only applies to pooled connections.
ListenBacklog Ganze ZahlInteger 11 1010 Maximale Anzahl an Verbindungen, die ein Listener nicht verarbeitet hat, bevor zusätzliche Verbindungen zu diesem Endpunkt abgelehnt werden.Maximum number of connections that the listener can have unserviced before additional connections to that endpoint are denied.
MaxBufferPoolSize LongLong 00 512 kB512 KB Maximaler Arbeitsspeicher in Bytes, die der Transport dem Zusammenlegen von wiederverwendbaren Nachrichtenpuffern widmet.Maximum memory, in bytes, that the transport devotes to pooling reusable message buffers. Wenn der Pool keinen Nachrichtenpuffer bieten kann, wird ein neuer Puffer zur temporären Verwendung belegt.When the pool cannot supply a message buffer, a new buffer is allocated for temporary use.

Installationen, die viele Kanalfactorys oder Listeners erstellen, können große Speichermengen für Pufferpools belegen.Installations that create many channel factories or listeners can allocate large amounts of memory for buffer pools. Die Reduzierung dieser Puffergröße kann die Speicherauslastung in diesem Szenario entscheidend verringern.Reducing this buffer size can greatly reduce memory usage in this scenario.
MaxBufferSize Ganze ZahlInteger 11 64 KB64 KB Maximale Größe eines Puffers in Bytes, der für das Streaming von Daten verwendet wird.Maximum size, in bytes, of a buffer used for streaming data. Ist dieses Transportkontingent nicht festgelegt oder verwendet der Transport kein Streaming, entspricht der Kontingentwert dem kleineren der MaxReceivedMessageSize-Kontingentwerte und MaxValue.If this transport quota is not set, or the transport is not using streaming, then the quota value is the same as the smaller of the MaxReceivedMessageSize quota value and MaxValue.
MaxOutboundConnectionsPerEndpoint Ganze ZahlInteger 11 1010 Maximale Anzahl an ausgehenden Verbindungen, die einem bestimmten Endpunkt zugeordnet werden können.Maximum number of outgoing connections that can be associated with a particular endpoint.

Diese Einstellung gilt nur für zusammengeführte Verbindungen.This setting only applies to pooled connections.
MaxOutputDelay TimeSpanTimeSpan 00 200 ms200 ms Maximale Zeit für das Warten nach einem Sendevorgang zum Stapeln zusätzlicher Nachrichten in einem einzelnen Vorgang.Maximum time to wait after a send operation for batching additional messages in a single operation. Nachrichten werden früher gesendet, wenn der Puffer des zugrunde liegenden Transports voll ist.Messages are sent earlier if the buffer of the underlying transport becomes full. Ein weiteres Senden von Nachrichten setzt den Verzögerungszeitraum nicht zurück.Sending additional messages does not reset the delay period.
MaxPendingAccepts Ganze ZahlInteger 11 11 Maximale Anzahl der Annahmen für Kanäle, die der Listener im Wartezustand haben kann.Maximum number of accepts for channels that the listener can have waiting.

Es liegt ein Zeitintervall zwischen dem Abschluss der Annahme und dem Starten einer neuen Annahme.There is an interval of time between the accept completing and a new accept starting. Durch die Erhöhung der Sammlungsgröße kann verhindert werden, dass Clients, die während dieses Intervalls eine Verbindung aufbauen, gelöscht werden.Increasing this collection size can prevent clients that connect during this interval from being dropped.
MaxPendingConnections Ganze ZahlInteger 11 1010 Maximale Anzahl an Verbindungen, die für einen Listener darauf warten können, von der Anwendung angenommen zu werden.Maximum number of connections that the listener can have waiting to be accepted by the application. Wenn dieser Kontingentwert überstiegen wird, werden neue eingehende Verbindungen gelöscht, statt weiter auf die Annahme zu warten.When this quota value is exceeded, new incoming connections are dropped rather than waiting to be accepted.

Verbindungsfunktionen, wie Nachrichtensicherheit, können dazu führen, dass ein Client mehr als eine Verbindung öffnet.Connection features such as message security can cause a client to open more than one connection. Dienstadministratoren sollten diese zusätzlichen Verbindungen bei der Einrichtung des Kontingentwerts berücksichtigen.Service administrators should account for these additional connections when setting this quota value.
MaxReceivedMessageSize LongLong 11 64 KB64 KB Maximale Größe einer empfangenen Nachricht in Bytes, einschließlich der Header, bevor der Transport eine Ausnahme auslöst.Maximum size, in bytes, of a received message, including headers, before the transport raises an exception.
OpenTimeout TimeSpanTimeSpan 00 1 Min.1 min Maximale Wartezeit für den Aufbau einer Verbindung, bevor der Transport eine Ausnahme auslöst.Maximum time to wait for a connection to be established before the transport raises an exception.
ReceiveTimeout TimeSpanTimeSpan 00 10 Min.10 min Maximale Wartezeit für den Abschluss eines Lesevorgangs, bevor der Transport eine Ausnahme auslöst.Maximum time to wait for a read operation to complete before the transport raises an exception.
SendTimeout TimespanTimespan 00 1 Min.1 min Maximale Wartezeit für den Abschluss eines Schreibvorgangs, bevor der Transport eine Ausnahme auslöst.Maximum time to wait for a write operation to complete before the transport raises an exception.

Die Transportkontingente MaxPendingConnections und MaxOutboundConnectionsPerEndpoint werden zu einem einzelnen Transportkontingent namens MaxConnections kombiniert, wenn dies durch die Bindung oder die Konfiguration eingerichtet ist.The transport quotas MaxPendingConnections and MaxOutboundConnectionsPerEndpoint are combined into a single transport quota called MaxConnections when set through the binding or configuration. Nur das Bindungselement ermöglicht die einzelne Einrichtung dieser Kontingentwerte.Only the binding element allows setting these quota values individually. Das MaxConnections-Transportkontingent verfügt über die gleichen Mindest- und Standardwerte.The MaxConnections transport quota has the same minimum and default values.

Festlegen von TransportkontingentenSetting Transport Quotas

Transportkontingente werden durch das Transportbindungselement, die Transportbindung, die Anwendungskonfiguration oder die Hostrichtlinie festgelegt.Transport quotas are set through the transport binding element, the transport binding, application configuration, or host policy. Dieses Dokument deckt nicht die Einrichtung von Transporten über die Hostrichtlinie ab.This document does not cover setting transports through host policy. Informationen über die Einrichtung von Hostrichtlinienkontingenten finden Sie in der Dokumentation des zugrunde liegenden Transports.Consult the documentation for the underlying transport to discover the settings for host policy quotas. Die Configuring HTTP and HTTPS Thema wird beschrieben, kontingenteinstellungen für die Http.sys-Treibers.The Configuring HTTP and HTTPS topic describes quota settings for the Http.sys driver. Durchsuchen Sie die Microsoft Knowledge Base, um weitere Informationen über die Konfiguration von Windows-Beschränkungen auf HTTP-, TCP/IP- und Named Pipe-Verbindungen zu erhalten.Search the Microsoft Knowledge Base for more information about configuring Windows limits on HTTP, TCP/IP, and named pipe connections.

Andere Typen von Kontingenten gelten indirekt für Transporte.Other types of quotas apply indirectly to transports. Der Nachrichtenencoder, den der Transport nutzt, um eine Nachricht in Bytes zu transformieren, kann über eigene Kontingenteinstellungen verfügen.The message encoder that the transport uses to transform a message into bytes can have its own quota settings. Allerdings sind diese Kontingente vom verwendeten Transporttyp unabhängig.However, these quotas are independent of the type of transport being used.

Kontrolle von Transportkontingenten vom BindungselementControlling Transport Quotas from the Binding Element

Das Festlegen von Transportkontingenten durch das Bindungselement bietet die größte Flexibilität in der Kontrolle des Transportverhaltens.Setting transport quotas through the binding element offers the greatest flexibility in controlling the transport's behavior. Die Standardtimeouts für Schließen-, Öffnen-, Empfangs- und Sendevorgänge werden von der Bindung übernommen, wenn ein Kanal erstellt wird.The default timeouts for Close, Open, Receive, and Send operations are taken from the binding when a channel is built.

nameName HTTPHTTP TCP/IPTCP/IP Named PipeNamed pipe
ChannelInitializationTimeout XX XX
CloseTimeout
ConnectionBufferSize XX XX
IdleTimeout XX XX
LeaseTimeout XX
ListenBacklog XX
MaxBufferPoolSize XX XX XX
MaxBufferSize XX XX XX
MaxOutboundConnectionsPerEndpoint XX XX
MaxOutputDelay XX XX
MaxPendingAccepts XX XX
MaxPendingConnections XX XX
MaxReceivedMessageSize XX XX XX
OpenTimeout
ReceiveTimeout
SendTimeout

Kontrolle von Transportkontingenten von der BindungControlling Transport Quotas from the Binding

Die Einrichtung von Transportkontingenten durch die Bindung bietet einen vereinfachten Satz an Kontingenten, aus dem ausgesucht werden kann, während gleichzeitig der Zugriff auf die üblichsten Kontingentwerte aufrechterhalten bleibt.Setting transport quotas through the binding offers a simplified set of quotas to choose from while still giving access to the most common quota values.

nameName HTTPHTTP TCP/IPTCP/IP Named PipeNamed pipe
ChannelInitializationTimeout
CloseTimeout XX XX XX
ConnectionBufferSize
IdleTimeout
LeaseTimeout
ListenBacklog XX
MaxBufferPoolSize XX XX XX
MaxBufferSize 11 XX XX
MaxOutboundConnectionsPerEndpoint 22 22
MaxOutputDelay
MaxPendingAccepts
MaxPendingConnections 22 22
MaxReceivedMessageSize XX XX XX
OpenTimeout XX XX XX
ReceiveTimeout XX XX XX
SendTimeout XX XX XX
  1. Das MaxBufferSize-Transportkontingent steht nur auf der BasicHttp-Bindung zur Verfügung.The MaxBufferSize transport quota is only available on the BasicHttp binding. Die WSHttp-Bindungen gelten für Szenarien, die keine Streamingtransportmodi unterstützen.The WSHttp bindings are for scenarios that do not support streamed transport modes.

  2. Die Transportkontingente, MaxPendingConnections und MaxOutboundConnectionsPerEndpoint werden zu einem einzelnen Transportkontingent namens MaxConnections kombiniert.The transport quotas MaxPendingConnections and MaxOutboundConnectionsPerEndpoint are combined into a single transport quota called MaxConnections.

Kontrolle von Transportkontingenten von der KonfigurationControlling Transport Quotas from Configuration

Die Anwendungskonfiguration kann die gleichen Transportkontingente festlegen, wie der direkte Zugriff auf Eigenschaften auf der Bindung .Application configuration can set the same transport quotas as directly accessing properties on a binding. In Konfigurationsdateien beginnt der Name eines Transportkontingents immer mit einem Kleinbuchstaben.In configuration files, the name of a transport quota always starts with a lowercase letter. Beispielsweise entspricht die CloseTimeout-Eigenschaft auf einer Bindung der closeTimeout-Einstellung in der Konfiguration, und die MaxConnections-Eigenschaft auf einer Bindung entspricht der maxConnections-Einstellung in der Konfiguration.For example, the CloseTimeout property on a binding corresponds to the closeTimeout setting in configuration and the MaxConnections property on a binding corresponds to the maxConnections setting in configuration.

Siehe auchSee Also

HttpsTransportBindingElement
HttpTransportBindingElement
TcpTransportBindingElement
NamedPipeTransportBindingElement
ConnectionOrientedTransportBindingElement
TransportBindingElement