Tag: 缓存控制

使用ASP.NET清除缓存的最有效方法

我正在构建一个ASP.NET/Umbraco驱动的网站,它是通过entity framework驱动的非常自定义的数据,我们不得不缓存相当多的数据查询(例如按关键字搜索),因为它是一个繁忙的网站。 但是当用户创建新的数据条目时,我需要清除所有缓存的查询(搜索等…),以便在结果中提供新条目。 所以在我的创建,删除和更新方法中,我调用以下方法: public static void ClearCacheItems() { var enumerator = HttpContext.Current.Cache.GetEnumerator(); while (enumerator.MoveNext()) { HttpContext.Current.Cache.Remove(enumerator.Key.ToString()); } } 这真的很糟糕吗? 我看不出我应该如何清除缓存的项目?

如何撤消Response.Cache.SetNoStore()?

我有一个CMS应用程序代码,它在所有请求上调用Response.Cache.SetNoStore() ,如果我是正确的,这将阻止代理/ cdn缓存这些页面/内容。 因此,我有条件地调用以下代码: Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetMaxAge(new TimeSpan(0, 30, 0)); Response.Cache.SetValidUntilExpires(true); 但这并没有从响应头中取出no-store参数,这是返回的http头: Cache-Control:public, no-store, must-revalidate, max-age=1800 因此,我的问题是,如何才能真实地取出nostore param? 如果这是不可能的,我如何/在哪里解析/修改http-header,因为我试图在PagePreRender事件上解析并且nostore param尚未应用…这导致想知道哪个生命周期是这个附加到标题?

如何以编程方式清除缓存?

在我的应用程序( ASP.NET + c# )中,我需要在用户进入aspx页面之前清除缓存。 有没有人知道如何以编程方式清除aspx页面或后面的代码(c#)中的缓存?