ASP.NET输出缓存 - 动态更新依赖项

时间:2010-01-13 15:42:01

标签: asp.net outputcache

我有一个需要输出缓存的ASP.NET应用程序。当从Web服务返回的数据发生更改时,我需要使缓存的项无效,因此简单的持续时间不够好。

我一直在阅读有关缓存依赖性的一些内容,并认为我有正确的想法。看起来我需要为我的Web服务创建缓存依赖。

要将页面输出与此依赖关系相关联,我认为我应该使用以下方法:

Response.AddCacheItemDependency(cacheKey);

我正在努力解决的问题是我应该添加到缓存中吗?

我的页面具有的依赖关系是Web服务返回的单个值。我目前的想法是我应该通过继承CacheDependency来创建自定义缓存依赖关系,并将当前值存储在缓存中。然后,我可以使用Response.AddCacheItemDependency来形成依赖项。

然后我可以定期检查值和NotifyDependencyChange,以使我的缓存HTTP响应无效。

问题是,我需要确保立即刷新缓存,因此定期检查不够好。如何在从缓存中获取HTTP响应之前,确保重新评估表示Web服务返回的值的缓存中的依赖对象?

问候,科林E.

2 个答案:

答案 0 :(得分:0)

我相信您的缓存依赖性正在走上正轨。但是,如果您不“定期检查”Web服务的返回值,您怎么知道它何时返回新值?您可能需要在另一个方向上设置Web服务,以便当其他系统中的值发生更改时,它可以调用您的系统并使旧缓存无效并保留新值。

答案 1 :(得分:0)

您可以使用以下方式手动使缓存页面无效:

System.Web.HttpResponse.RemoveOutputCacheItem(path)