Binding.ReceiveTimeout 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 ab oder legt das Zeitintervall fest, in dem eine Verbindung inaktiv bleiben kann, während der keine Anwendungsnachrichten empfangen werden, bevor sie gelöscht wird.
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
Dies TimeSpan gibt an, wie lange die Anwendung eine Nachricht vor dem Timeout empfangen muss. Der Standardwert beträgt 10 Minuten.
Ausnahmen
Der Wert ist kleiner als Null oder zu groß.
Hinweise
Bei verwendung einer zuverlässigen Sitzung gibt es zwei unterschiedliche Inaktivitätszeitgeber, die erfüllt sein müssen, um die Verbindung lebendig zu halten. Wenn eines dieser Inaktivitätszeitgeber deaktiviert wird, wird die Verbindung gelöscht.
Der erste Inaktivitätszeitgeber befindet sich auf der zuverlässigen Sitzung und wird als " InactivityTimeout. Dieser Inaktivitätszeitgeber wird ausgelöst, wenn keine Nachrichten, entweder Anwendung oder Infrastruktur, innerhalb des Timeoutzeitraums empfangen werden. Eine Infrastrukturnachricht ist eine Nachricht, die für den Zweck eines der Protokolle im Kanalstapel generiert wird, z. B. ein Keep Alive oder eine Bestätigung, anstatt Anwendungsdaten zu enthalten.
Der zweite Inaktivitätszeitgeber befindet sich im Dienst und verwendet die ReceiveTimeout Einstellung der Bindung. Dieser Inaktivitätszeitgeber wird ausgelöst, wenn keine Anwendungsmeldungen innerhalb des Timeoutzeitraums empfangen werden. Dies gibt z. B. die maximale Zeit an, bis ein Client mindestens eine Nachricht an den Server sendet, bevor der Server den von einer Sitzung verwendeten Kanal schließt. Dieses Verhalten stellt sicher, dass Clients nicht für beliebige lange Zeiträume auf Serverressourcen warten können.
Da die Verbindung gelöscht wird, wenn eine der inaktivitätszeitgeber ausgelöst wird, wird sie erhöht InactivityTimeout , sobald sie größer ist als ReceiveTimeout keine Auswirkung. Der Standardwert für beide dieser Timeouts beträgt 10 Minuten, sodass Sie beide immer erhöhen müssen, um bei verwendung einer zuverlässigen Sitzung einen Unterschied zu machen.
Wenn der Transaktionsfluss für die Bindung oder den Kanal aktiviert ist, dauert der Vorgang möglicherweise länger als das angegebene Timeout. Unter diesen Umständen schlägt der Vorgang aufgrund des abgelaufenen Timeouts fehl, und die Transaktion wird ordnungsgemäß abgebrochen.
Wenn die Sicherheit mit Sitzungen verwendet wird, wird der ReceiveTimeout für die Bindung festgelegte Wert auch als Sitzungstimeout verwendet.