2

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

但是,运行时

DataCacheFactory factory = new DataCacheFactory();

我明白了

服务器集合不能为空。

我想这是可以预料的,因为我没有在 web.config 中添加任何服务器。

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

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

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

4

1 回答 1

1

我们计划使用 SQL Server 作为缓存管理器,据我所知,SQL 将包含集群中缓存主机的列表。

这是假的。SQL Server 可以执行集群管理,但它仅用于管理缓存主机,最终管理缓存集群。它只是用于内部管理,您的客户端可以使用此配置,他们不需要访问 Sql Server。

DataCacheFactory 工厂 = new DataCacheFactory();

此代码将尝试在配置中加载默认数据缓存客户端。在您的情况下,它应该是空的,这就是您收到此错误的原因。

您仍然可以使用代码以这种方式配置缓存主机。

// 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 缓存会将请求路由到正确的缓存主机,如果它不在您的列表中。

于 2013-04-17T20:26:16.977 回答