【问题标题】:How can I prevent outputcache ejection in code如何防止代码中的输出缓存弹出
【发布时间】:2011-11-06 04:51:14
【问题描述】:

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

【问题讨论】:

    标签: asp.net .net-4.0 outputcache


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 1970-01-01
      • 2022-08-24
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多