ReliableSession.InactivityTimeout 屬性

定義

取得或設定服務在關閉之前維持在非作用狀態的時間間隔。

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

屬性值

TimeSpan

TimeSpan,指定服務在關閉之前處於非作用中狀態的時間間隔。 預設值是 10 分鐘。

例外狀況

設定的值小於或等於零。

範例

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

備註

此屬性取得並設定 InactivityTimeout 屬性的值。

通道上的活動定義為收到應用程式或基礎結構訊息。 無活動逾時會控制讓非作用中工作階段保持運作的最大時間量。 如果超過 InactivityTimeout 指定時間間隔沒有任何活動,基礎結構和通道錯誤便會中止工作階段, 此時可靠工作階段會單方面遭到終止。

如果傳送應用程式沒有訊息要傳送,則可靠工作階段通常不會因無活動而發生錯誤;相反地,保持作用中的機制會無限期地讓工作階段保持在作用中。 請注意,如果沒有傳送或接收應用程式訊息,發送器可以獨立中止可靠工作階段。 因此,如果網路狀況造成沒有收到任何訊息,或是如果傳送者有失敗,無活動逾時通常就會過期。

設定此逾時可避免用戶端未關閉安全性階段時,伺服器緊抓住它不放。 若安全性工作階段在一段無活動時間間隔內未接收到訊息,它就會被伺服器關閉。 如此可降低阻絕服務攻擊的潛在可能性。

使用可靠工作階段時,必須滿足兩個不同的無活動計時器,才能保持連線運作。 如果其中一個無活動計時器引發,就會中斷連線。

  • 第一個無活動計時器在可靠的工作階段,稱為 InactivityTimeout。 如果在逾時期限內未收到訊息 (應用程式或基礎結構訊息),便會引發這個無活動計時器。 基礎結構訊息是為了通道堆疊的其中一個通訊協定 (例如保持運作或通知) 所產生的訊息,而非包含應用程式資料的訊息。

  • 第二個無活動計時器位於服務上,會使用繫結的 ReceiveTimeout 設定。 如果在逾時期限內未收到應用程式訊息,便會引發這個無活動計時器。

因為其中一個無活動計時器引發便會中斷連線,因此當 InactivityTimeout 大於 ReceiveTimeout 時增加前者沒有任何作用。 這兩個計時器的預設逾時都是 10 分鐘,因此在使用可靠工作階段時,一定要同時增加兩者,才會有所差別。

適用於