本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

Binding.ReceiveTimeout 屬性

 

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

命名空間:   System.ServiceModel.Channels
組件:  System.ServiceModel (於 System.ServiceModel.dll)

public TimeSpan ReceiveTimeout { get; set; }

屬性值

Type: System.TimeSpan

TimeSpan,指定應用程式在逾時之前多久必須接收訊息。 預設值為 10 分鐘。

Exception Condition
ArgumentOutOfRangeException

這個值小於零或太大。

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

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

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

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

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

工作階段,使用安全性 ReceiveTimeout 繫結上設定的值也會用做為工作階段逾時。

通用 Windows 平台
自 8 起供應
.NET Framework
自 3.0 起供應
可攜式類別庫
提供支援︰ 可攜式 .NET 平台
Silverlight
自 2.0 起供應
Windows Phone Silverlight
自 7.0 起供應
回到頁首
顯示: