Ручное обновление кэша вывода

Прямо сейчас у меня есть OutCache для действия с продолжительностью 365 дней. Однако в зависимости от некоторых событий я хотел бы очистить кеш, и есть несколько условий для очистки кеша. Более того, VaryByParam не вариант.

Как я могу этого добиться?

Я думаю, что могу сделать что-то вроде этого, сохранить переменную в файле cookie, например: RefreshCache = false, и проверить это в методе переопределения VaryByCustom. Если RefreshCache оценивается как true, сбросьте его на false, увеличьте переменную аргумента VaryByCustom на 1.

Однако я не уверен, что это эффективный метод для достижения того, чего я хочу.


person Shyamal Parikh    schedule 31.08.2015    source источник
comment
Привет, может быть, ты понял, как с этим справиться?   -  person Anastasios Selmani    schedule 23.11.2020


Ответы (1)


Вы можете удалить элемент выходного кэша, используя HttpResponse.RemoveOutputCacheItem

Однако это будет применяться только к элементам OuputCache, хранящимся на сервере. Если вы кэшируете на клиенте, этот метод не повлияет.

Надеюсь это поможет.

person heymega    schedule 31.08.2015
comment
По умолчанию он хранится в 3-х местах, верно? веб-сервер, любые прокси-серверы и браузер пользователя. Так как же будет работать RemoveOutputCacheItem при сценарии по умолчанию? Более того, что вы думаете о предложенном мной методе? - person Shyamal Parikh; 31.08.2015