我无法理解我应该使用哪个容器来存储缓存:
HttpContext.Current.Session
或MemoryCache
?
HttpContext.Current.Session
和MemoryCache
中存储的数据有何区别?
答案 0 :(得分:2)
当您为特定用户存储数据时,您可以使用HttpContext.Current.Session
MemoryCache是为所有用户存储数据时,数据在所有用户之间共享
答案 1 :(得分:1)
您唯一的问题是:Session
和Cache
之间的差异......以及Session
特定于帐户或用户帐户(每个用户特定访问权限都是会话的一部分)而{{{ 1}}是应用程序的全局。您只存储将在整个应用程序中使用的公共数据,而不管Cache
中的用户会话。现在再次,您的缓存存储可以是持久的(如果您选择存储在数据库或分布式缓存中,如cache
或Redis
/非持久性,如存储缓存的ASP.NET Azure memcache
对象工作进程HttpContext.Cache
中的对象...因此,如果工作进程通过回收应用程序池而死亡,则会丢失缓存对象)
此外,通过会话,如果要在所有Web服务器上访问会话(在负载平衡环境中),那么您应该考虑使用w3wp