2010-10-07 50 views
1

我有一個基於我的asp.net的web.sitemap一個谷歌地圖一個HttpHandler的。相當標準的東西。除了它執行一些相當繁重的數據庫工作以自動爲頁面內的Ajax選項卡生成其他URL。谷歌地圖的HttpHandler cacheing

這一切都意味着我們的數據庫被擊中相當嚴重,如果機器人擊中sitemap.axd。

我們所需要的,當然,是輸出緩存。但是,如何在基本直接寫入XmlTextWriter的內容中進行緩存呢?

回答

2

最簡單的答案是將XML寫入字符串,並將其存儲在一個靜態字段。

+0

好兩個問題(1)線程安全嗎? (2)從創建新的XmlTextWriter(response.Output)的那一刻開始,我如何從一個帶有XmlTextWriter的方法中獲取字符串,以便所有內容都直接返回響應。 – 2010-10-07 14:04:04

+1

創建一個返回字符串的靜態方法,並在字段的初始值設定項中調用該方法。這將是線程安全的。 – SLaks 2010-10-07 14:06:17

+1

圍繞新的'StringWriter'創建一個'XmlTextWriter',然後調用'StringWriter.ToString()'。 – SLaks 2010-10-07 14:06:46