2012-06-17 27 views
0

嘗試在Windows Azure中創建新的專用緩存角色,但每次運行此代碼時都會得到NotSupportedException: This operation is not supported by the cache異常。作爲總結,這裏是我做了什麼......無法調用獲取Windows Azure緩存實例

我用下面的代碼構建緩存,異常只要我打電話GetCache(string) occures:

_dataCacheFactory = new DataCacheFactory(); 
_cache = _dataCacheFactory.GetCache(cacheName); 

此外,我已經加入適當的<dataCacheClients>配置部分和參考下列程序集(所有引用組件在Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref):

  • Microsoft.ApplicationServer.Caching.AzureClientHelper
  • Microsoft.ApplicationServer.Caching.AzureCommon
  • Microsoft.ApplicationServer.Caching.Client
  • Microsoft.ApplicationServer.Caching.Core
  • Microsoft.Web.DistributedCache

我還設置了緩存Azure項目中的工作人員角色。

據我所知,我已經遵循了所有的MSDN文檔,任何人都可以提出什麼可能是錯誤的嗎?

回答

2

我猜你正在嘗試獲取命名緩存,這是在Azure共享緩存中的not supported。而不是_dataCacheFactory.GetCache(cacheName),請嘗試使用_dataCacheFactory.GetDefaultCache()

+0

我不知道我明白「共享」緩存......我會看看。我需要做什麼來支持「命名」緩存? – JoeGeeky

+0

「共享」緩存是約18個月左右的Azure Appfabric緩存。我還沒有聽說有任何計劃支持那裏的指定緩存。另一種緩存是幾周前剛公佈的緩存預覽。這是一個私人緩存。我相信你可以在那裏做指定的緩存。根據您的使用情況,這可能是更合適的選擇。 https://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/ –

+0

謝謝...這導致瞭解決方案。我不得不使用'DataCacheFactory(DataCacheFactoryConfiguration)'構造函數重載來定位一個命名的配置。然後,我可以使用'GetDefaultCache()'方法,該方法基本上針對與該工廠關聯的命名實例。 – JoeGeeky

2

當您使用Windows Azure Cache (Dedicated and Co-located Cache)必須使用位於下方的引用(這是釋放預覽):

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref\CachingPreview 

此外,當您使用Windows Azure Shared Cache,那麼你應該使用位於下面引用:

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref\ 

Windows Azure緩存(專用和同位置緩存)之間的差異Windows Azure共享緩存是第一個駐留在您的虛擬機中並通過創建累積共享緩存在實例之間共享,而第二個位於虛擬機之外(在Windows Azure中,您從Windows Azure管理門戶配置它),並且所有實例都將此緩存連接到一個網絡管道。