Существует ли пошаговое руководство по настройке кэширования AppFabric с расширяемым кэшированием вывода .NET 4.0?

Я хочу использовать AppFabric (Velocity) в качестве поставщика дискового кэширования для работы с расширяемой функцией кэширования вывода ASP.NET 4.0. Но когда я установил AppFabric, я обнаружил, что его невероятно сложно настроить, и я понятия не имею, как заставить мое приложение ASP.NET работать с ним. Поэтому мне было интересно, есть ли простой для понимания учебник по настройке обоих?

Или есть ли более простой способ, кроме AppFarbric, реализовать кэширование диска с помощью ASP.NET?


person silent    schedule 04.05.2010    source источник
comment
AppFabric может быть немного запутанным в настройке. Есть ли что-то конкретное, с чем вам нужна помощь?   -  person PhilPursglove    schedule 05.05.2010


Ответы (1)


Я написал некоторый код VB для AppFabricOutputCacheProvider в январе — он находится в моем блоге здесь. Версия С# (4.0) будет:

using System.Web;  
using Microsoft.ApplicationServer.Caching;

namespace AppFabricOutputCache
{
    public class CacheProvider: System.Web.Caching.OutputCacheProvider, IDisposable
    {
        DataCache mCache;

        const String OutputCacheName = "OutputCache";

        public void New()
        {
            DataCacheFactory factory;

            factory = new DataCacheFactory();

            mCache = factory.GetCache(OutputCacheName);
        }

        public override Object Add(String key, Object entry, DateTime utcExpiry)
        {
            mCache.Add(key, entry, utcExpiry - DateTime.UtcNow);

            return entry;
        }

        public override object Get(string key)
        {
            return mCache.Get(key);
        }

        public override void Remove(string key)
        {
            mCache.Remove(key);
        }

        public override void Set(string key, object entry, DateTime utcExpiry)
        {
            mCache.Put(key, entry, utcExpiry - DateTime.UtcNow);
        }

        public void IDisposable.Dispose()
        {
            mCache = null;
        }

    }
}

Чтобы использовать это в своем приложении, вам нужно это в файле web.config.

<caching>
  <outputCache>
    <providers>
      <add name="AppFabricOutputCacheProvider" type="AppFabricOutputCache.CacheProvider"/>
    </providers>
  </outputCache>
</caching>

Гуннар Пейпман в своем блоге здесь.

person PhilPursglove    schedule 05.05.2010
comment
Привет, Фил, спасибо за ответ! Я только что видел другое решение: bit.ly/22wknT Знаете ли вы, какое решение быстрее? (Я храню кеш только на своем локальном сервере, мне не нужно распределенное хранилище) - person silent; 06.05.2010
comment
Трудно сказать без тестирования, но я ожидаю, что AppFabric будет иметь преимущество, поскольку все это делается в памяти, дисковый кеш, вероятно, будет иметь некоторую задержку при доступе к диску. - person PhilPursglove; 06.05.2010