我最近一直在阅读无会话控制器,这似乎是一个有趣的想法,因为它improves perfomance并让ajax调用是异步的,通常它们应该是。
但是,我无法想出一种存储以前由会话存储的数据的好方法。我有很多单次获取数据,我得到一次,并通过几个页面走过它。我的第一个想法是使用MemoryCache,但读这个post我开始怀疑它,因为IIS可以随时放弃我的数据。
因此,我对如何在会话中存储数据方面感到有些困惑。我读了一些关于NoSQL和MongoDB的内容,但这不一定与我需要的时候获取数据一样吗?
您能否给我一些可用作临时数据存储区的说明和技术?
答案 0 :(得分:0)
您是否考虑过使用HttpContext.Cache?正如您在会话中所说的那样,没有理由不能根据当前请求的sessionid创建缓存密钥:
// cache key
var cacheKey = string.Format("{0}-{1}", "SomeKey", Session.SessionID);
// save to cache
HttpContext.Cache.Insert(cacheKey, <yourobject>, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(20));
从那里开始,只需要传递sessionid并在以后检索:
HttpContext.Cache[cacheKey]