Binding.ReceiveTimeout 屬性

定義

取得或設定連線中斷之前,可以維持非作用狀態的時間間隔 (在此期間未接收應用程式訊息)。

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

屬性值

TimeSpan

TimeSpan 指定應用程式在逾時之前必須接收訊息的時間長度。預設值為 10 分鐘。

例外狀況

這個值小於零或太大。

備註

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

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

  • 第二個無活動計時器位於服務上,會使用繫結的 ReceiveTimeout 設定。 如果在逾時期限內未收到應用程式訊息,便會引發這個無活動計時器。 例如,這會指定伺服器關閉工作階段使用的通道之前,用戶端至少傳送一個訊息至伺服器所花的最長時間。 這個行為可確保用戶端無法任意長時間地佔用伺服器資源。

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

如果在繫結程序或通道上啟用異動流程,執行作業所花的時間可能會比指定的逾時還要長。 在這些情況下,此作業會因為超過逾時值而失敗,異動也會適當地中止。

當安全性與會話搭配使用時,系 ReceiveTimeout 結上設定的值也會當做會話逾時使用。

適用於