默认的asp.net内存缓存机制根据时间从缓存中弹出项目。我希望进一步控制在特定情况下取消某些对象从缓存中弹出。我尝试滚动自己的OutputCacheProvider,但从不调用Remove方法(因此我无法在那里实现逻辑)。似乎从缓存中自动弹出是在其他地方完成的。谁知道我怎么能搞这个?
答案 0 :(得分:0)
永远不会调用remove方法,因为由提供程序来实现该功能。有一些情况是在OutputCacheModule中调用Provider.Remove。我见过的一些自定义提供程序检查Get方法中的到期时间(或其他过期逻辑)。
输出缓存的默认行为是使用内存提供程序。通常,在将项插入HttpRuntime内存缓存时会挂钩OnItemRemovedCallback。实际上,HttpRuntime缓存会逐渐驱逐它,因此您的自定义提供程序代码永远不会被驱逐。
HTH