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 分です。

例外

値が 0 以下の値に設定されています。

// 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 より長くなると、インフラストラクチャによってセッションは中止され、チャネルはエラーとなります。 信頼できるセッションは、強制的に終了されます。

送信元アプリケーションに送信するメッセージがない場合は、通常、無反応のために信頼できるセッションがエラーになることはありません。代わりに、keep-alive 機構が無期限にセッションをアクティブ状態で維持します。 アプリケーション メッセージが送信または受信されない場合、これとは関係なく、ディスパッチャーが信頼できるセッションを終了させる場合があることに注意してください。 したがって、どのような種類のメッセージも受信されないようなネットワーク状態の場合、または送信側でエラーが発生した場合には、通常、非アクティブ タイムアウトになります。

このタイムアウトを設定すると、クライアントがセキュリティ セッションを閉じない場合にサーバーがそのセッションを保持することを回避できます。 セキュリティ セッションが、非アクティブ時間の間にメッセージを受信しなかった場合、そのセッションは、サーバーによって閉じられます。 これにより、潜在的なサービス拒否攻撃が軽減されます。

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

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

  • もう 1 つの非アクティブ タイマーはサービスに対して適用され、バインドの ReceiveTimeout 設定を使用します。 タイムアウト時間内にアプリケーション メッセージが受信されない場合、この非アクティブ タイマーが発生します。

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

適用対象