如何防止代码中的outputcache弹出

时间:2011-08-29 17:19:00

标签: asp.net .net-4.0 outputcache

默认的asp.net内存缓存机制根据时间从缓存中弹出项目。我希望进一步控制在特定情况下取消某些对象从缓存中弹出。我尝试滚动自己的OutputCacheProvider,但从不调用Remove方法(因此我无法在那里实现逻辑)。似乎从缓存中自动弹出是在其他地方完成的。谁知道我怎么能搞这个?

1 个答案:

答案 0 :(得分:0)

永远不会调用remove方法,因为由提供程序来实现该功能。有一些情况是在OutputCacheModule中调用Provider.Remove。我见过的一些自定义提供程序检查Get方法中的到期时间(或其他过期逻辑)。

输出缓存的默认行为是使用内存提供程序。通常,在将项插入HttpRuntime内存缓存时会挂钩OnItemRemovedCallback。实际上,HttpRuntime缓存会逐渐驱逐它,因此您的自定义提供程序代码永远不会被驱逐。

HTH