日期:2014-05-17  浏览次数:20405 次

为什么我的文件依赖缓存,文件没改变的情况下,半个小时就失效了?
为什么我的文件依赖缓存,文件没改变的情况下,半个小时就失效了?
这个是代码??
            CacheDependency dep = new CacheDependency(this.FileName);
            HttpRuntime.Cache.Insert(key, obj, dep);
------最佳解决方案--------------------
询问下虚拟主机管理员,问他们是不是对应用程序域的内存使用有上上限限制
------其他解决方案--------------------
内存不够时。这是第一种情况。

第二种
应用域重启可能会导致cache数据丢失。
应用域重启包括但不限于以下情况:
web.config被修改
bin目录内容发生变化
还有其它很多原因,可以搜索msdn

------其他解决方案--------------------
引用:
你看看你iis的应用程序池回收时间是否和你测试的情况匹配
默认是1740分钟 ,29小时,


补充下,程序池回收选项卡的配置 是否合理
------其他解决方案--------------------
加个回调,写个日志,看看原因
------其他解决方案--------------------
就是日志检测到的,看是缓存读取,还是直接读取,也没有出错,就是缓存没有了,
------其他解决方案--------------------
不知道是不是因为我放在自己的pc电脑上的原因???我用自己公司的电脑做的服务器,用公司外网地址访问
------其他解决方案--------------------
把reason也记录在日志中呢?

也可以考虑在回调当中再加入更新缓存的方式。我以前就是这样做的。
------其他解决方案--------------------
什么reason啊??调用的时候没出错,我调用代码是如果缓存不存在则直接访问然后在直接写入缓存,可这个缓存有效期只有30分钟,超过了就得重新写一次缓存了,我命名是文件缓存啊,怎么变成时间缓存了
------其他解决方案--------------------
把缓存的时间弄长点。
------其他解决方案--------------------
我是文件缓存啊,没有设置时间的
这个是代码
CacheDependency dep = new CacheDependency(this.FileName);
HttpRuntime.Cache.Insert(key, obj, dep);

难道文件缓存的有效期只有30分钟啊??
------其他解决方案--------------------
怎么没有高手指点啊···
------其他解决方案--------------------
人呢,需要高手啊··
------其他解决方案--------------------
会不会是iis回收,或者网站重启了?
------其他解决方案--------------------
网站没有重启,iis回收是??
------其他解决方案--------------------
怎么还没有高手来呢··
------其他解决方案--------------------
哎,还是没人甩我啊···
------其他解决方案--------------------
我记得缓存依赖和缓存时间是分开的吧,就是说,缓存依赖不管设置为什么,缓存时间这个属性还是有的,一但依赖没有了,缓存会更新;缓存时间到了,一样会更新。
------其他解决方案--------------------
我又重新做了下测试
我在公司PC电脑架设缓存如果30分钟没访问就失效,放到虚拟主机上,1个小时没访问就失效

这个是什么情况呢??怎么解决呢??我就用的文件依赖缓存,没设置时间的
代码如下
CacheDependency dep = new CacheDependency(this.FileName);
HttpRuntime.Cache.Insert(key, obj, dep);
------其他解决方案--------------------
还是没人来啊??大家帮助一下可怜的我吧··
------其他解决方案--------------------
来个高手啊。。。需要指点啊··
------其他解决方案--------------------
引用:
询问下虚拟主机管理员,问他们是不是对应用程序域的内存使用有上上限限制



谢谢啊,看了下本机的IIS应用程序配置,估计知道什么愿意了··
------其他解决方案--------------------