1

我最近一直在阅读有关无会话控制器的文章,这似乎是一个有趣的想法,因为它提高了性能并让 ajax 调用像通常那样异步。

但是,我想不出一种很好的方法来存储以前由会话存储的数据。我有很多单次获取的数据,我一次获得并浏览了几页。我的第一个想法是使用 MemoryCache,但阅读这篇文章我开始怀疑它,因为 IIS 可以随时释放我的数据。

因此,我对如何以类似会话的方式存储数据感到有些困惑。我读了一些关于 NoSQL 和 MongoDB 的东西,但这与在我需要的时候一直获取数据不一样吗?

你能给我一些说明和技术,我可以用来作为临时数据存储吗?

4

1 回答 1

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]
于 2012-06-04T15:04:34.087 回答