Очистить ASP.NET Кэш выходных данных в веб-приложениях

StackOverflow https://stackoverflow.com/questions/1425012

Вопрос

Возможно ли очистить кэш вывода одного asp.net веб-приложения изнутри другого asp.net веб-приложения?

Причина в том, что...У нас есть несколько wep-приложений, структурированных следующим образом...

Страницы в /area1/ и /area2/ кэшируются и управляются через /intranet/cms/.Когда страница редактируется с помощью /intranet/cms /, я хочу очистить ее из кэша в соответствующем /area#/ application.

Я уже пробовал использовать VaryByCustom, который ищет guid, хранящийся в HttpContext.Кэш, но, похоже, он кэшируется для каждого веб-приложения, это не работает.

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

Спасибо!

-Майк Томас

Это было полезно?

Решение

Способ, которым я делал это в прошлом, заключался в том, чтобы иметь "скрытую" страницу (в каждом из /areaX сайты), который выполняет промывку, перезагрузку и т.д.Страница проверяет общий секретный параметр запроса, прежде чем что-либо делать (чтобы избежать DoS-атак).Если это допустимо, страница выдаст сообщение "OK" после завершения операции;генерирует ошибку 404, если секрет недопустим.

Если вы хотите, чтобы очистка производилась для каждого элемента или для каждой группы, добавьте второй параметр, который идентифицирует этот элемент / группу.

Этот метод также не зависит от серверной технологии и при необходимости может быть запущен другими инструментами управления.

Другие советы

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

Однако в этих случаях обычно лучше использовать внепроцессный кэш, такой как кэшированный в памяти.Я сам этого не тестировал, но это Ссылка сделки по использованию memcached с OutputCache.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top