【发布时间】:2011-11-06 04:51:14
【问题描述】:
默认的 asp.net 内存缓存机制根据时间从缓存中弹出项目。我想进一步控制在某些情况下取消某些对象从缓存中的弹出。我尝试滚动自己的 OutputCacheProvider,但从未调用 Remove 方法(因此我无法在那里实现逻辑)。似乎缓存中的自动弹出是在其他地方完成的。有谁知道我如何利用这个?
【问题讨论】:
标签: asp.net .net-4.0 outputcache
默认的 asp.net 内存缓存机制根据时间从缓存中弹出项目。我想进一步控制在某些情况下取消某些对象从缓存中的弹出。我尝试滚动自己的 OutputCacheProvider,但从未调用 Remove 方法(因此我无法在那里实现逻辑)。似乎缓存中的自动弹出是在其他地方完成的。有谁知道我如何利用这个?
【问题讨论】:
标签: asp.net .net-4.0 outputcache
永远不会调用 remove 方法,因为由提供者来实现该功能。有几种情况是在 OutputCacheModule 中调用了 Provider.Remove。我见过的一些自定义提供程序会在 Get 方法中检查过期时间(或其他过期逻辑)。
输出缓存的默认行为是使用内存提供程序。通常,在将项目插入 HttpRuntime 内存缓存时,您会挂钩 OnItemRemovedCallback。实际上,HttpRuntime 缓存会按时间逐出它,因此您的自定义提供程序代码永远不会被逐出。
第
【讨论】: