我正在研究的网站正在广泛使用HttpContext.Current.Application
商店来缓存数据库中的查找数据。 (这不是很多数据 - 只是在下拉列表中使用的简单事物等。)
关于这种方法的一些问题:
此商店是否具有生命周期(与用户会话在20分钟后超时的方式相同,应用商店是否超时)?
IIS中的事件或与网站相同的App Domain中的事件是否会导致应用商店刷新? (我知道更改web.config文件中的值会导致重新创建商店..还有其他事情可以做到吗?)
有更好的方法吗?
答案 0 :(得分:1)
Web.config导致应用程序重新启动,正是该操作正在清除HttpContext.Current.Application。
重新启动应用程序,触摸web.config,在IIS中手动执行此操作,使IIS回收应用程序池的任何内容都将“清除”该数据。
考虑到这一点,它仍然是最多的内存商店,所以如果你需要更多的东西,你将不得不将你的数据保存到磁盘或某个地方的数据库。
你可能并不真的需要使用它(我们很少这样做),通常最好的策略是使用应用程序缓存并根据需要重建资源。只要您的服务器不在高内存压力下,就不会丢弃缓存(unelss设置了到期时间)。
答案 1 :(得分:0)
我的理解是适用于应用程序生命周期,或直到重置应用程序池。
关于IIS中的应用程序/会话池将被回收的所有各种原因,有一篇很好的文章here。
IIS和web.config中都有设置可以更改应用程序商店可用性的行为。