ReliableSession.InactivityTimeout 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 ein Zeitintervall ab, das ein Dienst vor dem Schließen inaktiv bleiben kann, oder legt dieses fest.
public:
property TimeSpan InactivityTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan InactivityTimeout { get; set; }
member this.InactivityTimeout : TimeSpan with get, set
Public Property InactivityTimeout As TimeSpan
Eigenschaftswert
Dies TimeSpan gibt das Zeitintervall an, in dem ein Dienst vor dem Schließen inaktiv bleibt. Der Standardwert ist 10 Minuten
Ausnahmen
Der Wertsatz ist kleiner oder gleich Null.
Beispiele
// Create a new reliable session object
ReliableSessionBindingElement bindingElement = new ReliableSessionBindingElement();
ReliableSession reliableSession = new ReliableSession(bindingElement);
// Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered);
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout);
' Create a new reliable session object
Dim bindingElement As ReliableSessionBindingElement = New ReliableSessionBindingElement()
Dim reliableSession As ReliableSession = New ReliableSession(bindingElement)
' Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered)
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout)
Hinweise
Die Eigenschaft ruft den Wert der Eigenschaft ab und legt sie InactivityTimeout fest.
Aktivität auf einem Kanal wird als Empfang einer Anwendung oder Infrastrukturnachricht definiert. Die Inaktivitätstimeouteigenschaft steuert die maximale Zeitdauer, um eine inaktive Sitzung aktiv zu halten. Wenn mehr als das InactivityTimeout angegebene Zeitintervall ohne Aktivität übergeht, wird die Sitzung von der Infrastruktur und den Kanalfehlern abgebrochen. Die zuverlässige Sitzung wird einseitig heruntergerissen.
Wenn die sendende Anwendung keine Nachrichten zum Senden hat, ist die zuverlässige Sitzung normalerweise aufgrund von Inaktivität nicht fehlerhaft. Stattdessen hält ein Keep-Alive-Mechanismus die Sitzung unbegrenzt aktiv. Beachten Sie, dass der Verteiler die zuverlässige Sitzung unabhängig abbrechen konnte, wenn keine Anwendungsnachrichten gesendet oder empfangen werden. Daher läuft das Inaktivitätstimeout in der Regel ab, wenn Netzwerkbedingungen so sind, dass keine Nachrichten von irgendeiner Art empfangen werden oder wenn ein Fehler auf dem Absender auftritt.
Wenn Sie dieses Timeout festlegen, wird verhindert, dass der Server eine Sicherheitssitzung hält, wenn der Client ihn nicht schließt. Wenn die Sicherheitssitzung keine Nachricht für das Inaktivitätsintervall empfangen hat, wird sie vom Server geschlossen. Dadurch wird ein potenzieller Denial-of-Service-Angriff abgemildert.
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.
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.