Udostępnij za pośrednictwem


Binding.ReceiveTimeout Właściwość

Definicja

Pobiera lub ustawia interwał czasu, przez który połączenie może pozostać nieaktywne, podczas którego żadne komunikaty aplikacji nie są odbierane, 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 ma otrzymać komunikat przed przekroczeniem limitu czasu. Wartość domyślna to 10 minut.

Wyjątki

Wartość jest mniejsza niż zero lub za 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órykolwiek z tych czasomierzy braku aktywności ulegnie awarii, połączenie zostanie przerwane.

  • Pierwszy czasomierz braku aktywności znajduje się w niezawodnej sesji i jest nazywany .InactivityTimeout Ten czasomierz braku aktywności jest wyzwalany, jeśli w okresie upłynięcia limitu czasu nie zostaną odebrane żadne komunikaty( aplikacja lub infrastruktura). Komunikat infrastruktury jest komunikatem generowanym na potrzeby jednego z protokołów w stosie kanału, takiego jak utrzymywanie aktywności lub potwierdzenie, a nie zawierające dane aplikacji.

  • Drugi czasomierz braku aktywności jest w usłudze i używa ReceiveTimeout ustawienia powiązania. Ten czasomierz braku aktywności jest wyzwalany, jeśli w okresie upłynięcia limitu czasu nie zostaną odebrane żadne komunikaty aplikacji. Określa to na przykład maksymalny czas, jaki klient może wysłać co najmniej jeden komunikat na serwer, zanim serwer zamknie kanał używany przez sesję. To zachowanie zapewnia, że klienci nie mogą utrzymywać zasobów serwera przez dowolny długi czas.

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

Jeśli przepływ transakcji jest włączony w powiązaniu lub kanale, wykonanie operacji może potrwać dłużej niż określony limit czasu. W takich okolicznościach operacja kończy się niepowodzeniem z powodu upłynięcia limitu czasu i przerwanie transakcji odpowiednio.

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

Dotyczy