【问题标题】:Clearing asp cache?清除asp缓存?
【发布时间】:2015-03-10 12:17:48
【问题描述】:

我有一个包含 3 个项目的菜单的 asp.Net 页面。这三个点中的每一个都指向一个子菜单,一旦从主菜单中选择子菜单,该子菜单就会变得可见。我将一个项目从默认子菜单(3 个中的第一个)移动到另一个子菜单。尽管在呈现页面时菜单项出现在其新位置(并且其代码隐藏工作正常),但该选项仍保留在默认子菜单上的旧位置。我们使用的是 IIS 7。

重新启动没有帮助。如果我错了,请纠正我,但我认为该页面正在被缓存,我需要清除此缓存。

我该怎么做呢?这里发生了什么?

感谢您的帮助和耐心。

【问题讨论】:

  • @DanRayyy - 我们是一家 IE 商店。
  • 会将页面设置为不可缓存的工作吗?说明:stackoverflow.com/questions/914027/…
  • 添加 ?v=2 或任何随机查询字符串参数作为您正在使用的页面或 .js 的版本。这让缓存认为它是另一个页面。

标签: html asp.net caching


【解决方案1】:

试试下面的代码:

For Each de As DictionaryEntry In HttpContext.Current.Cache
   HttpContext.Current.Cache.Remove(DirectCast(de.Key, String))
Next

如果这样不行,

IDictionaryEnumerator enumerator = HttpContext.Current.Cache.GetEnumerator();

while (enumerator.MoveNext())

{

    HttpContext.Current.Cache.Remove(enumerator.Key);

}

请注意,这种技术对于具有 OutputCache 类型的页面效率不高。要清除这种类型的缓存,您应该使用下面的代码行。

HttpRuntime.Close();

【讨论】:

  • 以这种方式为所有用户解决此问题可能是一项艰巨的任务
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 2017-04-06
  • 1970-01-01
  • 2016-04-09
  • 2011-02-20
  • 2011-12-15
  • 2011-12-16
相关资源
最近更新 更多