無效緩存對象我保持在開發者已經使用的數據緩存在以下方式提出的申請:在ASP.NET
HttpContext.Current.Cache["key"] = myDataSet;
當這個緩存被無效他尚未明確。 myDataSet
是來自數據庫的SELECT的結果。數據庫已更新,但緩存不失效。我不想更改源代碼。我只是想使它無效。我試過iisreset
沒有運氣。
無效緩存對象我保持在開發者已經使用的數據緩存在以下方式提出的申請:在ASP.NET
HttpContext.Current.Cache["key"] = myDataSet;
當這個緩存被無效他尚未明確。 myDataSet
是來自數據庫的SELECT的結果。數據庫已更新,但緩存不失效。我不想更改源代碼。我只是想使它無效。我試過iisreset
沒有運氣。
如果您重新保存web.config
,則應用程序池將比iisreset
更優雅地回收,對緩存具有相同的結果。
無論如何,如果您不能更改代碼(乾淨的方式是使用SqlCacheDependency),該解決方案將會有點髒。
你可以改變Global.asax.cs(儘管它也是源代碼)嗎?您可以從這裏訪問HttpContext並清空代碼中的緩存。
嗯,不是真的。我無法在該服務器上部署源代碼。我有遠程訪問,可以做什麼需要在IIS中完成(如果這會有所幫助) – Nick 2009-09-01 14:11:21
iisreset
沒有工作!我沒有注意到IE正在緩存數據集時發生的變化。所以,原來的問題並不完全準確。
謝謝
Yeap-它將始終工作,雖然觸摸web.config作爲 Keplerf1提及是一種更好的技術。 – RichardOD 2009-09-01 14:44:43
iisreset應該工作。每當ASP.Net應用程序從內存中卸載時,它將清除任何服務器管理的會話數據。即使只是觸摸web.config應該卸載應用程序。
@Chris:問題標題有點誤導。問題中的代碼只是使用ASP.NET緩存,而不是輸出緩存。 – LukeH 2009-09-01 14:25:25
感謝盧克澄清,我已經相應地更新了我的答案 – 2009-09-01 15:16:55