2008-12-29 115 views
3

我似乎無法讓它「工作」。也許我甚至沒有正確地測試它。我在我的aspx頁面中有一個<%= DateTime.Now.ToString()%>行。我試過declarativly設置緩存這樣ASP.NET緩存

<%@ OutputCache VaryByParam="SchoolId" Duration="180" Location="Server" NoStore="false" %> 

我也試着通過Response.Cache對象設置它編程。時間戳總是改變。

web.config最初沒有outputCache部分。我添加了一個看起來像

<outputCache enableOutputCache="true" enableFragmentCache="true" sendCacheControlHeader="true" omitVaryStar="false"/> 

始終時間戳更改。我接下來要做什麼?

回答

3

呃。這個問題是一個Response.Cache.SetCacheability(HttpCacheability.NoCache)在Page_Load中的一個用戶控件,隱藏在頁面的三層深處。不過,我很感激幫助。

-al

1

我不認爲這會工作,因爲DateTime.Now是一個始終更新的屬性。您必須將其保存在另一個變量中,否則從緩存中獲取它。

嗯。我的大腦今天有點糊塗。我不確定這是否準確,因爲它是輸出緩存,但我現在沒有時間模擬樣本。

2

它應該很容易啓用。我過去通過在aspx中設置OutputCache指令來完成它。我不認爲web.config更改是必需的,因爲默認情況下通常啓用緩存。

您正在使用IIS或開發Web服務器進行測試嗎?你是否正在做任何會導致Web服務器在你的測試之間重置(即進行構建)的任何事情?

+0

對於WebDev服務器,我體驗到它不會緩存第一個請求。除此之外,我總是在不觸及web.config的情況下正常工作。 – 2008-12-30 17:51:36