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アプリケーションがタイムアウトするまでにメッセージを受信する必要がある時間を指定する 。既定値は 10 分です。

例外

値が 0 未満か、または大きすぎます。

注釈

信頼できるセッションを使用しているとき、接続を維持するために適用する必要がある非アクティブ タイマーが 2 つあります。 これらの非アクティブ タイマーのいずれかがオフになると、接続が切断されます。

  • 非アクティブ タイマーの 1 つは、信頼できるセッションに対して適用され、InactivityTimeout と呼ばれます。 タイムアウト時間内にアプリケーション メッセージまたはインフラストラクチャ メッセージが受信されない場合、この非アクティブ タイマーが発生します。 インフラストラクチャ メッセージは、アプリケーション データを含んでいるのではなく、接続維持や受信確認など、チャネル スタック内でプロトコルの 1 つのために生成されるメッセージです。

  • もう 1 つの非アクティブ タイマーはサービスに対して適用され、バインドの ReceiveTimeout 設定を使用します。 タイムアウト時間内にアプリケーション メッセージが受信されない場合、この非アクティブ タイマーが発生します。 この値は、たとえばクライアントが少なくとも 1 つのメッセージをサーバーに送信してから、サーバーがセッションで使用するチャネルを閉じるまでの最大時間を指定します。 この動作により、クライアントが長時間にわたってサーバーのリソースを保持することが回避されます。

いずれかの非アクティブ タイマーが発生した場合は接続が切断されるので、InactivityTimeoutReceiveTimeout を超えてからその値を大きくしても、影響はありません。 これらのタイムアウトの既定は両方とも 10 分です。したがって、信頼できるセッションを使用しているときに設定を変えるには、これらの両方の値を大きくする必要があります。

バインドまたはチャネルでトランザクション フローが有効になっている場合は、指定したタイムアウト時間より操作の実行が長くかかる可能性があります。 このような場合は、タイムアウトの時間が経過し、そのためにトランザクションが中止されるため、操作は失敗します。

セッションでセキュリティを使用する場合、 ReceiveTimeout バインディングに設定された値もセッション タイムアウトとして使用されます。

適用対象