【发布时间】:2012-11-08 19:05:43
【问题描述】:
我的 ASP 网站在远程数据库上的查询速度非常慢。为了解决这个问题,我在 Application_Start 中使用缓存。
HttpRuntime.Cache["Folders"] = (from f in db.Folders select f).ToList();
在控制器中
var folderList = (List<Folder>)HttpRuntime.Cache["Folders"];
第一次加载网站需要相当长的时间,但加载后速度很快。我还使用 IIS 的新 serverAutoStart="true" 功能,因此网站始终在加载缓存的情况下运行。即使应用程序池重新启动,IIS 也会在新的 W3wp 进程中加载网站,并在加载新实例时切换进程。导致没有停机或启动缓慢。
但是现在我想在某些控制器操作发生时重新加载缓存。那么是否可以在不阻塞所有网站或在重新加载时触发该操作的会话的情况下异步重新加载它?另外我希望当前的 Cache["Folders"] 在操作期间仍然有效。
【问题讨论】:
标签: caching asp.net-mvc-4