Как я могу предотвратить выброс кеша в коде - PullRequest
0 голосов
/ 29 августа 2011

механизм кэширования в памяти asp.net по умолчанию извлекает элементы из кэша в зависимости от времени. я хочу, чтобы дальнейший контроль отменял извлечение из кэша при определенных обстоятельствах для определенных объектов. я попытался развернуть свой собственный OutputCacheProvider, но метод Remove никогда не вызывался (поэтому я не могу реализовать логику там). похоже, что авто-извлечение из кеша делается где-то еще. Кто-нибудь знает, как я могу подключиться к этому?

1 Ответ

0 голосов
/ 30 августа 2011

Метод удаления никогда не будет вызываться, поскольку поставщик должен реализовать эту функцию. Существует несколько случаев, когда Provider.Remove вызывается в модуле OutputCacheModule. Некоторые пользовательские провайдеры, которые я видел, проверяют время истечения (или другую логику истечения) в методе Get.

Поведение по умолчанию для кэширования вывода заключается в использовании поставщика памяти. Обычно вы подключаете OnItemRemovedCallback при вставке элемента в кэш памяти HttpRuntime. На самом деле кеш HttpRuntime высвобождает его по времени, поэтому ваш пользовательский код провайдера никогда не будет удален.

НТН

...