为什么在将项目添加到Session对象时无法设置个人到期时间?
使用Cache.Add()
,您可以设置绝对到期时间和滑动到期时间。为什么不能使用Session
?
答案 0 :(得分:5)
会话不是缓存。 Session是一种克服Web通信无状态这一事实的方法。每个会话设置一个“桶”,因此您可以绑定到会话。当用户的会话超时时(通常在他的最后一页命中后20分钟),它会超时。
如果您需要某些东西过期,即使是每个用户,也需要使用缓存而不是会话。您可以使用自动糖,并因用户而异。或者,您可以在其中一个.NET缓存对象之上构建自己的自定义抽象(我使用MemoryCache进行本地缓存)。虽然我不是很快就会说“使用自定义代码”,但如果网站在用户中不断增长,那么缓存会带来好处,因为有一天你可以转向分布式缓存,例如AppFabric缓存,nCache(非常友好)或memcached