2013-04-03 2 views
2

Я пытаюсь понять, как правильно настроить кэширование AppFabric на веб-сайте. Мы планируем использовать SQL Server в качестве менеджера кэша, и насколько я понимаю, SQL будет содержать список узлов кэша в кластере.Конфигурирование AppFabric Cache без серверов листинга в web.config

Однако при работе

DataCacheFactory factory = new DataCacheFactory(); 

Я получаю коллекции Сервер

не может быть пустым.

который, я думаю, можно ожидать, так как я не добавил никаких серверов в web.config.

Однако я не хочу поддерживать список серверов на каждом веб-сервере, я хочу, чтобы это было сделано централизованно на SQL Server. Я предполагаю, что есть способ указать на SQL Server, но я не могу найти информацию о том, как это сделать.

(Я также попытался с помощью опции XML configration, но он даже не может найти этот файл. Я проверил здоровье службы в силовой оболочке.)

Как централизовать список хостов кэш-сервера?

ответ

1

Мы планируем использовать SQL Server в качестве менеджера кэша и, насколько я могу понять SQL будет содержать список хостов кэша в кластере .

Это неправда. SQL Server может выполнять управление кластером, но он предназначен только для управления хостами кэша и, в конечном счете, кластером кэша. Это просто для внутреннего управления, и ваши клиенты могут использовать эту конфигурацию, и им не нужно иметь доступ к Sql Server.

DataCacheFactory factory = new DataCacheFactory();

Этот код попытается загрузить файл datacacheclient по умолчанию в config. В вашем случае это должно быть пустым, поэтому вы получаете эту ошибку.

Вы все еще можете использовать код для настройки кэширования таким образом.

// 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 будет запрос маршрута к нужному хосту кэша, событие, если оно не находится в вашем списке.

+1

Отлично! Благодаря! – Sten

Смежные вопросы