2010-09-16 86 views
1

我正在使用從WebRequestCreator.ClientHttp.Create()創建的HttpWebRequest從Web服務中獲取數據。而且一切似乎都很好,直到我找到了被緩存的調用。我敢肯定的是,ClientHttp不包括緩存,但有點搜索之後,我發現這個小注:如何防止緩存響應中的Silverlight客戶端Http請求?

客戶端HTTP處理

  • 緩存支持

http://msdn.microsoft.com/en-us/library/dd772166(VS.95).aspx#networking

這是Si中的新變化MSDN上的llightlight 4頁面。但那幾乎是我能找到的唯一信息。我發現另一篇文章聲稱ClientHttp會要求尊重服務器的no-cache頭文件,但我真的希望我的Silverlight應用程序不依賴於服務器端設置。

這個問題的通常解決方法是簡單地爲每個調用添加一個隨機參數,但我真的想要一個更優雅的解決方案。

有沒有辦法簡單地禁用緩存ClientHttpWebRequest - 優先選擇單個呼叫而不是全局設置。

回答

0

您鏈接的文檔似乎說在ClientHttp中未啓用緩存。不過,我也看到類似GET響應緩存的行爲。我沒有看到一種方法來禁用它。

+0

我無法看到它在ClientHttp中未啓用緩存的位置,它表示緩存是在Silverlight 4中添加的一項新功能。如果您在MSDN的其他頁面上找到它,它對於Silverlight 3來說是一個過時的頁面,那裏沒有爲ClientHttp緩存。 無論如何,它似乎很奇怪,他們添加這個,並沒有一種方法來控制它。 – 2010-09-17 11:00:01

+0

http://msdn.microsoft.com/en-us/library/dd920295(v=VS.95).aspx 這篇文章說不啓用 – Jay 2010-10-14 18:54:37

0

我不認爲有一種方法可以從客戶端進行控制。在服務器端,爲我設置Cache-Control = no-cache導致錯誤,但是我可以通過將Expires標頭設置爲過去的日期來防止客戶端堆棧緩存內容(Response.Expires = -10;) 。

+0

在客戶端或服務?你有示例代碼嗎? – 2011-05-17 16:11:32

相關問題