2013-04-03 30 views
2

我想了解如何在Web站點上正確配置AppFabric緩存。我們計劃使用SQL Server作爲緩存管理器,並且據我所知,SQL將包含羣集中緩存主機的列表。在web.config中配置AppFabric Cache而不列出服務器

但是,運行

DataCacheFactory factory = new DataCacheFactory(); 

,當我得到

服務器集合不能爲空。

其中,我猜想,因爲我沒有在web.config中添加任何服務器,所以我預計這是。

但是,我不想在每個Web服務器上維護一個服務器列表,我希望在SQL Server上集中完成這個服務器列表。我假設有一種方法可以指向SQL Server,但是我找不到有關如何執行此操作的信息。

(我也試圖與XML CONFIGRATION選項,但它甚至不能找到該文件。我已經檢查了電源外殼的服務的健康狀況。)

我如何集中服務器緩存主機列表?

回答

1

我們計劃使用SQL Server作爲高速緩存管理器,並儘可能我 能理解SQL將包含 集羣中的緩存主機列表。

這是錯誤的。 SQL Server可以執行集羣管理,但它僅用於管理緩存主機,最終還用於管理緩存集羣。這只是爲了內部管理,你的客戶可以使用這種配置,而且他們不需要訪問Sql Server。

DataCacheFactory factory = new DataCacheFactory();

此代碼將嘗試在config中加載默認datacacheclient。在你的情況下,它應該是空的,這就是爲什麼你會得到這個錯誤。

您仍然可以使用代碼以這種方式配置緩存主機。

// Declare array for cache host(s). 
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1]; 
servers[0] = new DataCacheServerEndpoint("CacheServer1", 22233); 
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration(); 
factoryConfig.Servers = servers; 
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig); 
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1"); 

你並不需要在這裏指定所有的主機名,因爲AppFabric緩存將路由請求發送到正確的緩存主機上,如果事件是不是在你的列表中。

+1

完美!謝謝! – Sten

相關問題