2011-12-16 61 views
1

緩存動態頁面,這是我們的設置:在ASP.NET 4.0

的Windows 2003 Server標準,SQL 2005和ASP.NET 4.0。

我們有一個新聞網站,其URL結構如www.domain.com/This-is-my-headline-123.aspx-其中123是指向SQL數據庫中的記錄的ID。

是否有可能根據這個URL進行緩存,如果是的話,這將如何完成?我查看了ASP.NET緩存的VaryByParam選項,例如

<%@ OutputCache Duration="3600" VaryByParam="*"%> 

但我不確定最佳做法是什麼。我已閱讀此:

Is DiskCacheProvider in ASP.Net 4.0 really exist?與磁盤緩存,我認爲這是要走的路 - 但你們/加爾斯有一些輸入的最佳技術,以提高性能?

回答

1

您可以使用VaryByParam根據查詢字符串或POST參數改變輸出緩存。

在你描述的情況下,你想要的是VaryByCustom。爲了做到這一點,請重寫Global.asax中的GetVaryByCustomString()方法。 ASP.NET將爲您從該方法返回的每個唯一字符串存儲不同版本的頁面。

+0

謝謝,但我不確定我完全理解它。我補充一下像這樣的Global.asax: '公共重寫字符串GetVaryByCustomString(HttpContext的背景下,串ARG) { 如果(ARG == 「標題」){ 回報 「什麼?」; } return String.Empty; }` 那麼我應該寫什麼而不是「什麼?」在回報聲明中? – Sha 2011-12-16 14:44:20