wcfでのセッションの使用

ServisインスタンスをPer SessionまたはSingleとして設定した場合、セッション中のサービスインスタンス間でいくつかのデータを送信できますか? Asp.netセッションで実行する必要があります - HttpContext.Current.Session またはwcfには独自のセッションがありますか?

2
私は理解していますが、ASPのようなWCFセッションを使用してデータを保存することはできますか?
追加された 著者 netmajor,

2 答え

私が言ったように - WCFはASP.NETではなく、そのセッション処理は大きく異なります。 ASP.NETセッションとWCFセッションは同じように呼び出されますが、その目的と有用性は大きく異なります。

詳細については、MSDNのページの WCFでのセッションの使用を参照してください。

WCFセッションに関連付けられた一般的なデータストアはありません。 - 答えは「いいえ」です.WCFのセッションは、データ保存用ではありません です。

WCFセッションは、複数のメッセージを会話に「結びつける」だけのものです。既定では、 "per-call"モデルでは、各WCFサービス要求は、要求を処理するために独自にインスタンス化された新しいサービスクラスインスタンスを取得し、そのサービスクラスインスタンスは応答を返した後に解放されます。セッションを使用すると、これを回避できます。セッションの最初の呼び出しを処理するサービスクラスインスタンスは、サーバー側で有効な状態を維持し、サーバー上のメモリを占有し、同じセッション内の後続のすべての要求を処理します。

WCFとWebサービスは一般的にはステートレスであることが望ましいので、セッションは適切なSOA環境では奇妙なアーキテクチャです.WCFのセッションもASPほど有用ではない.NETセッションはWebアプリケーション向けです。

ステートレス状態を維持し、コールごとの方法(推奨されるベストプラクティス)をサポートするには、コール間でデータを格納する必要がある場合は、永続ストア(データベースなど)に格納し、後で必要に応じてそこからフェッチします。

11
追加された

IISでサービスをホストする場合は、ASP.Net互換モードを有効にすることができます。これにより、Webアプリケーションと同じように、ASP.Netセッション状態を使用することができます。

5
追加された
どのようにASP.Net互換モードを有効にしますか?
追加された 著者 Bastien Vandamme,