1
我目前使用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());
}
}