2012-11-27 38 views
2

設置蔚藍緩存客戶我已經得到了我們的網站都設置這樣在我的web.config:地方發展

<dataCacheClients> 
    <dataCacheClient name="default"> 
     <hosts> 
     <host name="mysite.cache.windows.net" cachePort="22233" /> 
     </hosts> 

     <securityProperties mode="Message"> 
     <messageSecurity 
      authorizationInfo="{key}"> 
     </messageSecurity> 
     </securityProperties> 
    </dataCacheClient> 
    </dataCacheClients> 

我想這樣編輯這個,而我在我的筆記本電腦發展我沒有碰到生產緩存,而是在筆記本電腦上緩存。

這對Google來說是一個難題(至少對我來說)是因爲「azure cache local」在Web角色上緩存。

回答

4

它看起來像您使用的是Windows Azure的共享緩存,並且要開發時使用一些本地緩存。

在系統中有一個抽象緩存層可能會更好,因此您可以在雲和本地之間切換緩存,而不是更改配置。例如,要使用ICache等接口,並使用GetItem,SetItem等一些方法。然後,您可以使用一些類實現此接口,該接口用於本地開發的內存緩存以及用於生產的Azure緩存。

有一個名爲ServiceStack在GitHub上的項目,包裝一些緩存實現,你可以參考https://github.com/ServiceStack/ServiceStack.Contrib/tree/master/src

或者,你可以使用新的雲服務緩存,提供協同定位/與你的雲服務單獨專用緩存集羣(網絡角色和工作者角色)。它具有完整的本地模擬器支持,這意味着您不需要更改本地開發(使用本地緩存模擬器)和生產之間的任何代碼和任何配置。

有關此Cloud Service緩存的更多信息,請參閱https://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/

2

一個選擇是使用Web.config轉換來更改每個部署的配置文件。我不是這方面的專家,但你可以用Google來解決這個問題。

另一種選擇是在代碼中配置緩存。然後,您可以輕鬆更改每個環境的.cscfg文件中的設置。下面是配置的代碼示例基本:

DataCacheFactoryConfiguration cacheConfig = new DataCacheFactoryConfiguration(); 

//Insert the Authentication Token as shown below 
cacheConfig.SecurityProperties = new DataCacheSecurity(config.AuthToken, config.UseSSL); 

int cachePort = (cacheUseSSL ? 22243 : 22233); 
cacheConfig.Servers = new DataCacheServerEndpoint[] { new DataCacheServerEndpoint(cacheHostName, cachePort) }; 
cacheConfig.RequestTimeout = TimeSpan.FromSeconds(1); 
cacheConfig.ChannelOpenTimeout = TimeSpan.FromSeconds(45); 
cacheConfig.MaxConnectionsToServer = config.MaxConnections; 
cacheConfig.TransportProperties.ReceiveTimeout = TimeSpan.FromSeconds(30); 
cacheConfig.TransportProperties.ChannelInitializationTimeout = TimeSpan.FromSeconds(10); 

var cacheFactory = new DataCacheFactory(cacheConfig);