【问题标题】:How to keep MVC5 from clearing controller output cache如何防止 MVC5 清除控制器输出缓存
【发布时间】:2018-02-16 16:27:50
【问题描述】:

目前我正在开发一个包含大约 5000 个不同页面的应用程序,这些页面都来自以下方法:

   [OutputCache(Duration = 604800)]
    public ActionResult Details(string alias){ //database connection and data retrieval - takes about 11 seconds }

此方法第一次运行需要很长时间 - 显然,在考虑使此速度更快的解决方案时,我开始考虑使用长期服务器端输出缓存,因为此数据库数据不会经常更改,并且在发生时并不紧急可以。

正如我所提到的,这个 Details 方法总共有大约 5000 个不同的结果,所以缓存不会很大。

问题:加载网站并运行网站爬虫后,并非所有页面都被缓存。我假设这是因为缓存缓冲区已满,并且 MVC 开始删除旧缓存以为新缓存让路。

我的问题:我如何告诉 ASP.net MVC 永远不要清除缓存 - 除非达到(一周的)到期日期?还是强制保留 OutputCache 直到过期日期?

谢谢大家。

【问题讨论】:

    标签: asp.net-mvc caching permanent


    【解决方案1】:

    您的服务器已受到限制 - 如果您重新启动机器或 IIS,您将遇到同样的问题。

    您最好的选择可能是将您的调用封装在您自己的缓存提供程序中,例如this SO question。从那里,您可以存储 OutputCache,也可以存储在 db 或 nosql 级别。

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 2011-11-06
      • 1970-01-01
      • 2013-01-05
      相关资源
      最近更新 更多