Каков наилучший способ удаленного сброса кэша сервера в веб-ферме? - PullRequest
1 голос
/ 17 сентября 2008

Каждый из наших производственных веб-серверов поддерживает собственный кэш для отдельных веб-сайтов (веб-приложения ASP.NET). В настоящее время, чтобы очистить кеш, мы заходим на сервер и «дотрагиваемся» до файла web.config.

У кого-нибудь есть пример безопасного / безопасного способа удаленного сброса кэша для определенного веб-приложения? В идеале мы могли бы сказать «очистить кэш для приложения X, работающего на всех серверах», а также «очистить кэш для приложения X, работающего на сервере Y».

Правки / уточнения:

  • Я, вероятно, должен пояснить, что делать это через само приложение на самом деле не вариант (то есть какой-то вход в приложение, просмотр определенной страницы или обработчика, который очищает кэш). Для того, чтобы сделать что-то подобное, нам нужно отключить / обойти регистрацию и код отслеживания статистики, или испортить нашу статистику.

  • Да, срок действия кэша истекает регулярно. Однако я хотел бы настроить что-то, чтобы можно было использовать конкретный кэш по требованию, обычно после того, как мы что-то изменили в базе данных (мы используем SQL 2000). Мы можем сделать это сейчас, но только войдя на сами серверы.

Ответы [ 3 ]

2 голосов
/ 17 сентября 2008

Для каждого приложения вы можете написать небольшой скрипт cache-dump.aspx для уничтожения данных кеша / приложения. Скопируйте его во все приложения и напишите сценарий-концентратор для управления вызовами.

В целях безопасности вы можете добавить все виды проверки подлинности или проверки IP.

Вот способ, которым я делаю фактический дамп приложения:

Context.Application.Lock()
Context.Session.Abandon()
Context.Application.RemoveAll()
Context.Application.UnLock()
1 голос
/ 17 сентября 2008

Нашел DevX статью о сенсорной утилите, которая выглядит полезной.

Я собираюсь попытаться объединить это либо с таблицей в базе данных (добавьте запись, и утилита touch найдет ее и обновит соответствующий файл web.config), либо с веб-службой (сделайте вызов, и утилита touch получит вызывается для обновления соответствующего файла web.config)

0 голосов
/ 17 сентября 2008

Это может быть не "элегантно", но вы можете настроить запланированное задание, которое выполняет пакетный скрипт. Сценарий, по сути, «прикоснется» к web.config (или другому файлу, который вызывает перекомпиляцию).

В противном случае, кэш вашего приложения не истечет через N минут?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...