Fab*_*ler 6 c# asp.net iis caching
我正在使用HttpContext.Current.Cache来缓存带有CacheItemUpdateCallback的昂贵数据查询.
这个想法是用户必须加载一次数据,然后updatecallback每30分钟更新一次对象.
这是我插入/覆盖缓存的方式:
HttpContext.Current.Cache.Insert(cacheID, cachedObject, null,
expiryTimeStamp,
Cache.NoSlidingExpiration,
updateCallBack);
Run Code Online (Sandbox Code Playgroud)
出于测试原因,我设置了这样的到期日期(每20秒更新一次):
var expiryTimeStamp = DateTime.Now.Add(new TimeSpan(0, 0, 20));
Run Code Online (Sandbox Code Playgroud)
一切正常.这意味着,它每20秒更新一次昂贵的物品 - 但只需要大约25分钟.然后不再调用触发器'updateCallBack'!
我想问题是IIS处理缓存所以回调'CacheItemUpdateCallBack'不再被触发......但这只是猜测.
这引出了我的问题:
我是否需要在app.config或IIS中设置任何设置?或者我做错了什么?
编辑: 此外,我不明白为什么带有CacheItemUpdateCallback 的Insert重载没有参数CacheItemPriority.但是,CacheItemRemovedCallback的重载确实具有优先级参数.也许,如果我可以将CacheItemPriority设置为"高",它就已经解决了我的问题.
编辑:我发现了问题:每个应用程序池都有一个空闲超时属性,设置为20分钟.
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |