這個問題很簡單。我已經在azure的虛擬機上部署了一個網站,並且在雲服務上部署了專用的緩存角色。問題是,如何讓虛擬機中的網站訪問專用緩存角色?請有人給我一些指示,去諮詢一些好的文章。虛擬機中的webapp可以訪問Azure中的緩存角色嗎?
Thx很多!
這個問題很簡單。我已經在azure的虛擬機上部署了一個網站,並且在雲服務上部署了專用的緩存角色。問題是,如何讓虛擬機中的網站訪問專用緩存角色?請有人給我一些指示,去諮詢一些好的文章。虛擬機中的webapp可以訪問Azure中的緩存角色嗎?
Thx很多!
你不能。目前唯一可行的解決方案是從同一個雲服務(同一個角色或另一個角色)訪問緩存。問題是您爲什麼使用VM在Azure中部署Web應用程序?
這是某種形式的「黑客」,我並沒有實際測試它:
您可以將Endpoint
添加到Cache中的作用,然後獲取列表中的IP地址的作用勢必使用類似:
var cacheRole = Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.Roles["Cache"];
var cacheEndPoints = cacheRole.Instances.SelectMany(x => x.InstanceEndpoints).Where(x => x.Key == "CacheEndpoint").ToList();
上面的代碼假定您明確添加端點(名爲CacheEndpoint
)Cache的作用(名爲Cache
)。它還假定您有另一個角色作爲緩存角色的相同部署的一部分,可以實際調用上述代碼並返回結果。
或者,您可以使用REST API(使用Service Management Library更容易)來獲取高速緩存端點(即使在不是與高速緩存角色相同部署的一部分的虛擬機角色內)。
那麼你就必須相應地配置客戶端代碼(會話狀態例如/輸出緩存適配器):
var cacheConfig = new Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration();
cacheConfig.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(false);
cacheConfig.Servers = cacheEndPoints.Select(x => new DataCacheServerEndpoint(x.Value.IPEndpoint.Address.ToString(), x.Value.IPEndpoint.Port));
,因爲虛擬機給我更多的空間來安裝外部軟件一樣7zip的,所以我的web應用程序可以利用他們做一些文件處理 – iNc0ming
小型實例雲服務爲您提供200GB空間來安裝第三方應用程序,這對於Web應用程序來說還不夠嗎?! – astaykov
其實我不知道vm和in-role vm有什麼區別? – iNc0ming