Binding.ReceiveTimeout Eigenschaft

Definition

Ruft ein Zeitintervall ab oder legt ein Zeitintervall fest, während dessen eine Verbindung inaktiv bleiben kann und keine Anwendungsnachrichten empfangen werden, bevor sie verworfen werden.

public:
 property TimeSpan ReceiveTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan ReceiveTimeout { get; set; }
member this.ReceiveTimeout : TimeSpan with get, set
Public Property ReceiveTimeout As TimeSpan

Eigenschaftswert

TimeSpan

Dies TimeSpan gibt an, wie lange die Anwendung eine Nachricht empfangen muss, bevor die Zeitdauer abgeht. Der Standardwert beträgt 10 Minuten.

Ausnahmen

Der Wert ist kleiner als 0 (null) oder zu lang.

Hinweise

Bei der Verwendung einer zuverlässigen Sitzung sind zwei verschiedene Inaktivitätszeitgeber vorhanden, deren Voraussetzungen erfüllt werden müssen, um die Verbindung aufrechtzuerhalten. Wenn einer dieser Inaktivitätstimer ausgeht, dann wird die Verbindung beendet.

  • Der erste Inaktivitätstimer befindet sich in der zuverlässigen Sitzung und wird als InactivityTimeout bezeichnet. Dieser Inaktivitätstimer wird ausgelöst, wenn innerhalb des Timeouts keine Nachrichten von der Anwendung oder der Infrastruktur empfangen werden. Eine Infrastrukturnachricht wird eher für den Zweck eines der Protokolle in einem Kanalstapel generiert, wie z. B dem Aufrechterhalten oder einer Bestätigung, als dass es Anwendungsdaten enthielte.

  • Der zweite Inaktivitätstimer ist im Dienst und verwendet die Einstellung ReceiveTimeout der Bindung. Dieser Inaktivitätstimer wird ausgelöst, wenn innerhalb des Timeouts keine Anwendungsnachrichten empfangen werden. Dadurch wird z. B. die maximale Zeit festgelegt, die ein Client zum Senden von mindestens einer Nachricht an den Server benötigen darf, bevor der Server den von einer Sitzung verwendeten Kanal schließt. Dieses Verhalten stellt sicher, dass Clients nicht beliebig lange an Serverressourcen festhalten können.

Da die Verbindung beendet wird, wenn einer der Inaktivitätstimer ausgelöst wird, besitzt die Erhöhung der InactivityTimeout keine Auswirkungen, sobald sie größer als die ReceiveTimeout ist. Der Standardwert für beide Timeouts beträgt 10 Minuten, sodass bei Verwendung einer zuverlässigen Sitzung stets beide erhöht werden müssen, um etwas zu bewirken.

Wenn der Transaktionsfluss für die Bindung oder den Kanal aktiviert ist, kann der Vorgang länger dauern als das festgelegte Timeout. In diesem Fall schlägt der Vorgang aufgrund des abgelaufenen Timeouts fehl und die Transaktion bricht entsprechend ab.

Wenn die Sicherheit mit Sitzungen verwendet wird, wird der ReceiveTimeout Wert, der auf der Bindung festgelegt ist, auch als Sitzungstimeout verwendet.

Gilt für