webservice接口功能处理需要大量基础数据,所以引入了Cache,事先先将所需的数据存入Cache,发布后部署到IIS,应用程序池去掉了回收工作进程的选项,程序测试调取接口,两天内Cache中的数据一直存在,但一旦更新了WebService接口,如其中一个dll更新了,甚至配置文件更新后,Cache中的数据就没了,想问问各位怎么能保证这个Cache不因接口更新而消失呢。
Cache本身已定义为永不过期:
hotelCache.Insert("HotelBasics", hotelDictionary, null, DateTime.MaxValue, TimeSpan.Zero, CacheItemPriority.NotRemovable,null);
------解决思路----------------------
既然是Cache,它的数据自然随时可能丢失啊。
你把别的东西当成Cache理解了吧?
------解决思路----------------------
另外,对于 asp.net,就算你定义一个 static 变量,它也会随时因进程重启而丢失的。更何况你的那种东西根本不是cache,而非要说成是 cache。
理顺了asp.net基本原理,重新考虑设计吧。
------解决思路----------------------
可能是由于代码更改了,dl重新生成了,配置文件更改了,这些行为都导致应用程序重启所以cache过期了,这和你在代码中设置了cache的过期时间无关,这个也不用太担心,当项目实际投入使用后总不可能三天两头就更新dll,然后重新生成程序吧?