クライアントへのコールバックを使用するWCFサービスを作成しようとしています。接続(インターネット、ネットワーク)があり、クライアントまたはチャネルのいずれかがチャネルを明示的に閉じていない限り、チャネルを開いたままにしておく必要があります。
チャネルを開いたままにするために(アクティビティがなくても)、WCFがサポートする信頼できるセッションを見つけました。信頼できるセッションを使用することにより、考慮に入れる必要のある2つのタイマーがあります。Binding.ReceiveTimeout
とReliableSession.InactivityTimeout
。
インターネットで検索した後も、この2つがどのように連携しているかを正確に理解することはできません。2つのいずれかがタイムアウトすると、接続に障害が発生した状態になることを私は知っています。
私の最初の質問:信頼できるセッションが有効になると、正確にはどうなりますか?
私の2番目の質問:ここで、msdnが次のように言うのはなぜですか?
いずれかの非アクティブタイマーが起動すると接続が切断されるため、ReceiveTimeoutより大きくなるとInactivityTimeoutを増やしても効果はありません。これらのタイムアウトの両方のデフォルトは10分であるため、信頼できるセッションを使用する場合は、違いを生むために常に両方を増やす必要があります。