web-dev-qa-db-ja.com

WCFの信頼性の高いセッションの目的は何ですか?

このトピックに関するドキュメントは不十分です。 WindowsサービスでホストされているNetTcpBindingでWCFサービスを使用しています。問題は、セッションがしばらく非アクティブになると、セッションがドロップされることです。私が必要としているのは、常に生きているセッションです。 WCFの信頼性の高いセッションは役に立ちますか?または、タイムアウト設定で遊ぶことはできますか?

31
Andrei Sedoi

いいえ、信頼できるセッションも他のセッションと同じようにタイムアウトします。主な質問は、実際には次のとおりです。なぜ地球上でセッションを「無限」にしたいのですかこれが本当に必要な場合は、セッションのタイムアウトを上げる必要があります。

信頼できるセッションのポイントは、失われたメッセージについて発信者が知ることができるということです。一般的な考えに反して、信頼性の高いセッションではメッセージの配信を保証できませんが、メッセージを配信できない場合でも、少なくとも発信者はそれを知っています。

背景情報については、以下のリソースをご覧ください。

43
marc_s

チャネルを使用しない場合は、しばらくすると閉じます。バインディングからデフォルトのタイムアウト(10分)を変更できます。

NetTcpBinding binding = new NetTcpBinding();
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;

詳しくは [〜#〜] msdn [〜#〜] をご覧ください

7
avrahamcool