配置AppFabric Cache而不在web.config中列出服务器

时间:2013-04-03 09:19:39

标签: appfabric-cache

我试图了解如何在网站上正确配置AppFabric缓存。我们计划使用SQL Server作为缓存管理器,据我所知,SQL将包含集群中缓存主机的列表。

但是,在运行时

DataCacheFactory factory = new DataCacheFactory();

我得到了

  

服务器集合不能为空。

我猜,由于我没有在web.config中添加任何服务器,所以我可以预料到。

但是,我不想在每个Web服务器上维护服务器列表,我希望在SQL Server上集中完成。我假设有一种方法指向SQL Server,但我找不到有关如何执行此操作的信息。

(我也尝试过使用XML configration选项,但它甚至找不到该文件。我已经检查了power shell中服务的健康状况。)

如何集中服务器缓存主机列表?

1 个答案:

答案 0 :(得分: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 Caching会将请求路由到正确的缓存主机,如果它不在您的列表中,则会发生事件。