目前,我正在开发一个包含约 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 直到到期日期?
感谢大家。