2009-05-21 44 views
2

ASP.NET 3.5では、すべてのセッションオブジェクト(現在のセッション内のオブジェクトではなく、すべてのユーザーのすべてのセッション)を反復処理して、コレクションの内容を操作できるようにすることができますか(つまり、すべてのアクティブなセッション)?ASP.NET:すべてのセッションオブジェクトを反復処理できますか?

もしそうなら、これはASP.NET State Service(同じ状態サービスを共有するすべてのWebサーバーによって作成されたすべてのセッションにアクセスします。すべて1つのWebサーバーからアクセスします)ですか?

答えて

1

私が思いついた唯一の答えは、1つのボックスで作業している場合は、アプリケーションコレクションに格納されているコレクションにセッションを入れて、各セッション終了する。しかし、共有状態サーバーへのグローバルなセッション更新を行うには、tvanfossonのコメントに次のような回答があります。ネットワークサーバー経由でこの機能を有効にするサードパーティ製サーバーまたは代替サーバーを使用する以外に、 。

1

This answerquestion I asked他のセッションからセッションを削除することについては、お役に立ちます。私はそれを試していないし、それを拡張する必要がありますが、反射を使用してすべてのセッションのコンテナにアクセスすることが可能に見えます。

+0

このテクニックは、基本セッションストアからアイテムを削除しますか?そこに格納されている場合、または状態サーバーからSQL Serverを削除しますか? –

+1

InProcセッションにのみ適用されます。これは、単一のサーバー上でのみ有効です。 SQLサーバーから行う方がずっと簡単ですが、実際にスキーマを調べて特定のアイテムにアクセスできるかどうかを確認していません。私は多くの場合、私のアプリケーションは1つのサーバーのための十分な小さな格納されません私は通常、InProcを使用します。 – tvanfosson

+0

ありがとうございますが、Sessionを新しいコレクションに入れてApplicationコレクションに入れることもできます。状態サーバーを使用しているすべてのサーバーに代わって更新する必要があります。 –