Централизованный способ очистки объекта Cache в asp.net - PullRequest
3 голосов
/ 07 октября 2009

Мне нужно поддерживать старое приложение asp.net и нужно отключить весь доступ к объекту Cache для целей отладки. Существуют сотни страниц, которые используют структуру:

if (Cache["myobject"] != null)
{
   //get data from the cache
   //...
}
else
{
   //go to the DB, load the cache and send it to the client
}

Я знаю, что мне следует провести рефакторинг этого кода, но в то же время вам известен какой-либо простой и централизованный способ очистки (или отключения) объекта Cache?

Ответы [ 3 ]

3 голосов
/ 07 октября 2009

Я не использовал его, но этот помощник может дать вам то, что вы ищете.

3 голосов
/ 07 октября 2009

Не уверен, поможет ли это, но вы можете поиграть с кешем , настройками и установить, скажем, privateBytesLimit на 1 и privateBytesPollTime на 00:00:01. Я предполагаю, что ASP.NET должен в основном удалить все записи, как только они будут добавлены. Однако это может быть не так.

2 голосов
/ 07 октября 2009

Если вы просто хотите очистить кэш один раз, вы можете использовать это:

   foreach ( System.Collections.DictionaryEntry entry in HttpContext.Current.Cache )
        HttpContext.Current.Cache.Remove( entry.Key as String );

В противном случае решение @Anton Gogolev выглядит хорошо для предотвращения новых записей.

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