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());
}
}