2011-10-07 49 views
0

我正在嘗試緩存我的WebService中WebMethod的輸出。我試圖緩存的方法返回的數據可能最多隻會每隔幾個月更改一次,所以我想緩存該輸出以減少加載時間。我一直在尋找WebMethod CacheDuration屬性,但是如果CacheDuration只是Session級別,緩存輸出將根本無濟於事。有誰知道CacheDuration是否可以在應用程序級別上工作?ASMX WebService CacheDuration,它是會話還是應用程序級別?

回答

2

在MSDN上沒有明確的答案(參見http://msdn.microsoft.com/en-us/library/system.web.services.webmethodattribute.cacheduration%28v=VS.100%29.aspxhttp://msdn.microsoft.com/en-us/library/byxd99hx%28v=VS.90%29.aspx)它指出緩存依賴於「唯一參數集」而不是在會話中......所以我假設它是應用程序級別 - 樣本在這些鏈接提供您可以輕鬆地測試...

另一個值得探索緩存的選項是明確使用Cache類 - 這完全控制緩存的所有方面,雖然不如您描述的方法「透明」 ...例如,您可以設置持續時間緩存項目保持「有效」的時間長度,您可以提供在某個項目即將被丟棄時調用的回調函數等。

0

我找不到明確表示它是一個或另一個的引用,但我會假設它在應用程序級別應用,如果僅僅因爲在會話級別應用它沒有意義,例如它不會幫助你的可擴展性。

+0

我同意只有在應用級別上應用它纔有意義,但我找不到證實或否認此假設的任何內容。因此,呼籲編程上帝:) –

相關問題