Udostępnij za pośrednictwem


ReliableSession.InactivityTimeout Właściwość

Definicja

Pobiera lub ustawia interwał czasu, przez który usługa może pozostać nieaktywna przed zamknięciem.

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

Wartość właściwości

TimeSpan

Określa TimeSpan interwał czasu, przez który usługa pozostaje nieaktywna przed zamknięciem. Wartość domyślna to 10 minut.

Wyjątki

Zestaw wartości jest mniejszy lub równy zero.

Przykłady

// 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)

Uwagi

Właściwość pobiera i ustawia wartość InactivityTimeout właściwości.

Działanie w kanale jest definiowane jako odbieranie komunikatu aplikacji lub infrastruktury. Właściwość limitu czasu braku aktywności kontroluje maksymalny czas, aby zachować nieaktywną sesję. Jeśli więcej niż InactivityTimeout określony interwał czasu przechodzi bez działania, sesja zostanie przerwana przez infrastrukturę i błędy kanału. Niezawodna sesja jest zburzona jednostronnie.

Jeśli aplikacja wysyłająca nie ma komunikatów do wysłania, sesja niezawodna zwykle nie jest uszkodzona z powodu braku aktywności; zamiast tego mechanizm utrzymania aktywności utrzymuje sesję aktywną na czas nieokreślony. Należy pamiętać, że dyspozytor może niezależnie przerwać niezawodną sesję, jeśli żadne komunikaty aplikacji nie są wysyłane ani odbierane. W związku z tym limit czasu braku aktywności zwykle wygasa, jeśli warunki sieciowe są takie, że żadne komunikaty jakiegokolwiek rodzaju nie są odbierane lub występuje błąd nadawcy.

Ustawienie tego limitu czasu uniemożliwia serwerowi trzymanie się sesji zabezpieczeń, jeśli klient go nie zamknie. Jeśli sesja zabezpieczeń nie odebrała komunikatu dla interwału braku aktywności czasu, zostanie zamknięta przez serwer. Ogranicza to potencjalny atak typu "odmowa usługi".

W przypadku korzystania z niezawodnej sesji istnieją dwa różne czasomierze braku aktywności, które muszą być spełnione, aby utrzymać połączenie przy życiu. Jeśli któryś z tych czasomierzy braku aktywności zostanie wyłączony, połączenie zostanie porzucone.

  • Pierwszy czasomierz braku aktywności znajduje się w niezawodnej sesji i jest nazywany .InactivityTimeout Ten czasomierz braku aktywności jest uruchamiany, jeśli w okresie przekroczenia limitu czasu nie są odbierane żadne komunikaty, aplikacja lub infrastruktura. Komunikat infrastruktury jest komunikatem generowanym w celu jednego z protokołów w stosie kanału, takiego jak utrzymanie aktywności lub potwierdzenie, zamiast zawierać dane aplikacji.

  • Drugi czasomierz braku aktywności jest w usłudze i używa ReceiveTimeout ustawienia powiązania. Ten czasomierz braku aktywności jest uruchamiany, jeśli w okresie przekroczenia limitu czasu nie są odbierane żadne komunikaty aplikacji.

Ponieważ połączenie jest porzucane, jeśli zostanie wyzwolony czasomierz braku aktywności, zwiększa się InactivityTimeout , gdy jest on większy niż ReceiveTimeout nie ma żadnego wpływu. Wartość domyślna dla obu tych limitów czasu to 10 minut, dlatego zawsze trzeba zwiększyć oba te limity, aby dokonać różnicy podczas korzystania z niezawodnej sesji.

Dotyczy