我在我的应用程序中发现了一种情况,当用户仍在访问我的应用程序时,我的缓存不会过期。让我详细解释一下。我已经将Cache设置为10秒后过期,我已经提到了NoAbsoluteExpiration。代码是这样的:
Cache.Insert("Data", value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10));
现在让我们说第一个用户访问该页面后,在第9秒,另一个用户访问该应用程序。在这种情况下,Cache不会在第10秒过期,并将自身延伸到接下来的10秒。这对我们的应用程序来说是个问题,因为如果每一秒我都有一个用户访问我的网站,那么缓存永远不会过期。我发现Cache只有在应用程序空闲10秒后才会过期。也就是说,如果网站没有被击中10秒钟。
如何使缓存每隔10秒钟过期,无论是否有任何用户仍在访问该页面,或者该应用程序是否处于空闲状态,我该如何才能使缓存过期。
提前致谢。
答案 0 :(得分:2)
然后使用NoSlidingExpiration而不是NoAbsoluteExpiration并给它一个绝对到期时间。
Cache.Insert("Data", value, null, TimeSpan.FromSeconds(10), System.Web.Caching.Cache.NoSlidingExpiration);
现在你明确地告诉缓存完全与你想要的完全相反。