在ASP.NET中使缓存对象无效

时间:2009-09-01 13:55:07

标签: c# asp.net caching

我正在维护一个应用程序,开发人员使用以下方式使用数据缓存:

HttpContext.Current.Cache["key"] = myDataSet;

他没有指定此缓存何时失效。 myDataSet是数据库中SELECT的结果。数据库已更新,但缓存未失效。我不想更改源代码。我只想让它无效。我试了iisreset没有运气。

4 个答案:

答案 0 :(得分:3)

如果您重新保存web.config,则应用程序池将比iisreset更优雅地回收,并且缓存的结果相同。

答案 1 :(得分:1)

如果你不能改变代码,那么解决方案会有点脏(干净的方法是使用SqlCacheDependency)。

你能改变Global.asax.cs(虽然它也是源代码)吗?您可以从此处访问HttpContext并清空代码中的缓存。

答案 2 :(得分:1)

iisreset应该有用。每当ASP.Net应用程序从内存中卸载时,它将清除任何服务器管理的会话数据。即使只是触摸web.config也应该卸载应用程序。

答案 3 :(得分:0)

iisreset确实有效!当IE缓存数据集时,我没有注意到这些变化。所以,原来的问题并不完全准确。

由于