Binding.ReceiveTimeout Właściwość

Definicja

Pobiera lub ustawia interwał czasu, przez który połączenie może pozostać nieaktywne, podczas którego nie są odbierane żadne komunikaty aplikacji, zanim zostanie porzucony.

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

Wartość właściwości

Określa TimeSpan , jak długo aplikacja musi otrzymywać komunikat przed upływem limitu czasu. Wartość domyślna to 10 minut.

Wyjątki

Wartość jest mniejsza niż zero lub zbyt duża.

Uwagi

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. Określa to na przykład maksymalny czas, przez który klient może wysłać co najmniej jeden komunikat do serwera, zanim serwer zamknie kanał używany przez sesję. Takie zachowanie zapewnia, że klienci nie mogą przechowywać zasobów serwera przez dowolny długi okres.

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.

Jeśli przepływ transakcji jest włączony w powiązaniu lub kanale, operacja może potrwać dłużej niż określony limit czasu. W takich okolicznościach operacja kończy się niepowodzeniem z powodu wygasłego limitu czasu, a transakcja przerywa się odpowiednio.

Gdy zabezpieczenia są używane z sesjami, ReceiveTimeout wartość ustawiona na powiązanie jest również używana jako limit czasu sesji.

Dotyczy