私は現在ASP.Net状態サーバーを使用してアプリケーションにセッションデータを格納しています。ASP.Net状態サーバーとアクセスHttpContext.Current.Session
セッションの大きな問題を回避するには(質問しないでください)、セッションから特定の文字列を含む一連のキーを削除する必要がありますが、正確なキーはわかりません。
私は以下のコードのようにしたいと思います。セッションデータは処理中であるため、これを実行することによってセッションデータ全体をASP.Netワーカープロセスにロードしています。これは問題です。なぜなら、現在のアプリケーションがセッション中に大量のデータを入れるからです(私たちが解決しようとしている長期的な問題)。
誰かがセッションがどのようにアクセスされるのか知っていますか?セッションをメモリにロードせずにセッションキーを反復処理する方法はありますか?
//does this line cause the session to be loaded back into the WP?
var session = HttpContext.Current.Session;
if (session != null)
{
//what about this line?
var keysToRemove = session.Keys.Cast<object>().
Where(key => key.ToString().Contains(MYKEY)).ToList();
foreach (var key in keysToRemove)
{
session.Remove(key.ToString());
}
}