在我的web應用程序中,我有一些預先存儲在Page.Cache中的值。在他的時刻,我不得不將這個功能轉移到web服務。可以在webservice中使用Cache嗎?
因此,我需要在webservice中引入類似的功能 - 首次調用web方法時計算值並將其存儲在緩存中。
是否有可能從緩存(不是在應用程序或會話 - 我需要在一段時間間隔後清除這些值)的一些值從Web服務?
在我的web應用程序中,我有一些預先存儲在Page.Cache中的值。在他的時刻,我不得不將這個功能轉移到web服務。可以在webservice中使用Cache嗎?
因此,我需要在webservice中引入類似的功能 - 首次調用web方法時計算值並將其存儲在緩存中。
是否有可能從緩存(不是在應用程序或會話 - 我需要在一段時間間隔後清除這些值)的一些值從Web服務?
總之 - 是的,你可以在Web服務中使用緩存。您必須根據服務實施選擇正確的緩存實施。例如,如果您使用ASP.NET Web服務,那麼您可以使用ASP.NET Cache - 可通過HttpContext.Current.Cache獲得。
如果您使用WCF Web服務,那麼您可能需要使用其他庫(順便說一句,ASP.NET Web服務已過時,所以我會建議WCF Web服務)。如果WCF服務標記爲與ASP.NET兼容,則ASP.NET基礎結構及其緩存將可用。但是您可以選擇在不使用ASP.NET集成的情況下託管WCF服務,在這種情況下,您可能需要查看不同的緩存API,例如,如果您使用的是.NET 4,則爲System.Runtime.Caching(請參閱quick tutorial以使用內存緩存),否則你可以嘗試Caching Application Block。
您應該能夠使用:
HttpContext.Current.Cache.Insert(strName, objItem, null,
DateTime.Now.AddMinutes(intMinutes), Cache.NoSlidingExpiration)
緩存項指定的時間間隔。
參考XML Web Service Caching Strategies
這似乎是有點老,但好文章。我希望你能找到你要找的東西。
'不在應用程序或會話中'您想要使用哪個緩存,一個新的? – TheCodeKing
正如你在下面的答案中看到的 - 有一些像舊的,已知的'緩存':) –
是的,如果是你的問題,試圖找出你的要求是什麼。有Runtime緩存,或者您可以創建自己的緩存。您也可以使用回調過期。 – TheCodeKing