2015-04-23 8 views
0

Я реализовал OutputCache в приложении, и он отлично работает, но поскольку я указал местоположение как сервер, и приложения запускаются в ферме серверов (2 сервера), когда я очищаю кеш, он очищается только с одного сервера на одном время. Я подумал о том, чтобы указать местоположение сервера (hardcode), чтобы кэш был сохранен в одном месте и может быть легко очищен, когда мне нужно. Итак, есть ли способ указать имя сервера жесткого кода для атрибута location в OutputCache? Или из файла webconfig?Есть ли способ очистить кэш от фермы серверов?

Декларация в WebConfig

<system.web> 
<caching> 
    <outputCacheSettings> 
    <outputCacheProfiles> 
     <add name="Cache10Minutes" 
      duration="300" 
      location="Server" 
      varyByParam="none"/> 
    </outputCacheProfiles> 
    </outputCacheSettings> 
</caching> 

Определение в соответствующей странице (заголовок страницы)

<%@ OutputCache CacheProfile="Cache10Minutes" Duration="300" Location="Server" VaryByParam="none"%> 

Чтобы очистить кэш кнопку мыши

HttpRuntime.UnloadAppDomain() 

Или что о создании триггера из базы данных при обновлении от клиента. Можно ли очистить кеш с обоих серверов? Исправьте меня, если моя идея неправильная или недостаточно ясная, я смущен. Пожалуйста посоветуй.

ответ

1

Насколько я знаю, выходной кэш предназначен только для сервера. Вы можете реализовать свой собственный OutputCacheProvider однако и реализовать свой собственный механизм кэширования: OutputCacheProvider Class, MSDN

OutputCacheProvider for Redis

Или, возможно, использовать распределенный кэш с AppFabric: How to: Configure the AppFabric Output Cache Provider for ASP.NET. Имейте в виду, что Microsoft прекращает поддержку AppFabric для Windows Server в следующем году Microsoft AppFabric 1.1 for Windows Server Ends Support 4/2/2016

+0

Как насчет создания файла веб-службы (.dll) для выполнения очистки кэша на обоих серверах, однажды вызываемых приложением, запущенным на текущем сервере. – Tipsy

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

  • Нет связанных вопросов^_^