2013-08-20 47 views

回答

1

您可以使用某種使用通用處理程序的Web服務,並讓Windows服務與此服務對話以更新網站上的項目。

但是,我個人會使用像Couchbase(Memcache)這樣的外部緩存,並且同時使用網站和Windows服務。

+0

我已經創建了一個web服務,但我仍然無法訪問webmethod中的system.web.caching.cache靜態對象,只有在頁面繼承System.Web.UI.Page時纔可以訪問此對象。 – user935143

+0

您可以使用'HttpRuntime。緩存「或」HttpContext.Current.Cache「。 – Lloyd

+0

謝謝:)我有另外一個問題,我注意到我存儲在緩存中的對象在一段時間後被移除,我如何配置它使它停留更長時間?我嘗試過,當我插入它緩存一個月後提供過期日期,但它沒有了。我注意到服務器的內存很低,可能它變滿了,數據從緩存中丟失了?或其配置問題? – user935143

1

不能將ASP.net緩存用作Windows服務和網站之間的共享緩存。 Windows服務將無法訪問此服務。

爲了做你想做的事,你應該使用外部緩存。例如,在同一臺計算機上或不同的可訪問計算機上設置Redis,然後從Windows服務訪問它以刷新數據,並從Web站點訪問以檢索預緩存的數據。

+1

您可以使用緩存,假設您可以提供一種在外部讀入和寫入的方式(如Web服務)。 – Lloyd

+0

@勞埃德是的,你可以。但他的問題是關於從Windows服務中使用它的問題。 –

+1

而我的觀點依然存在。通過提供一個接口(也稱爲Web服務或其他),將網站中的緩存顯示給Windows服務。 – Lloyd

相關問題