выходное кэширование пользовательского контроля во что-то еще, кроме памяти - PullRequest
0 голосов
/ 22 января 2012

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

Возможно ли вывести кэш пользовательского контроля на диск другим способом или в другой тип хранилища (дБ)?

спасибо Томас

1 Ответ

0 голосов
/ 22 января 2012

ASP.Net 4.0 добавил расширяемость выходного кэша. Вы делаете это путем создания поставщика кэша вывода. По словам Скотта Гу,

Поставщики кэша вывода могут использовать любой механизм хранения для сохранения кэшированного содержимого вывода. Это позволяет легко создавать поставщиков выходного кэша, которые хранят кэшированное содержимое с использованием любого механизма сохранения, включая локальные или удаленные диски, базы данных, облачное хранилище и механизмы распределенного кэша (например, memcached или speed).

Вы создаете провайдер кэша вывода путем создания подкласса OutputCacheProvider базовый класс.

Как только вы создали провайдер кэша, вы можете зарегистрировать его в файле web.config:

<caching>
  <outputCache defaultProvider="MyCustomCacheProvider">
    <providers>
      <add name="MyCustomCacheProvider" type="CustomCacheProvider" />
      </providers>
    </outputCache>
</caching>

Когда вы помещаете директиву OutputCache на страницу ascx вашего пользовательского элемента управления:

<%@ OutputCache Duration="120" VaryByParam="None" %>

вы должны иметь возможность использовать этот пользовательский поставщик кэша для управления пользователем.

Для получения дополнительной информации см. Отличное сообщение в блоге Скотта Гу .

...