2010-05-04 68 views
1

我想使用AppFabric(Velocity)作为磁盘缓存提供程序来使用ASP.NET 4.0的可扩展输出缓存功能。但是当我安装AppFabric时,我发现配置非常困难,我不知道如何让我的ASP.NET应用程序能够使用它。所以我想知道是否有一个易于理解的教程配置两者?是否有关于使用.NET 4.0可扩展输出缓存配置AppFabric缓存的分步教程?

或者,除了AppFarbric之外,还有其他更简单的方法来实现ASP.NET的磁盘缓存吗?

+0

AppFabric可能有点混乱配置。有什么需要帮助的吗? – PhilPursglove 2010-05-05 07:20:17

回答

0

我在1月份为AppFabricOutputCacheProvider写了一些VB代码 - 它在我的博客here上。一个C#(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> 

贡纳尔Peipman在他的博客here基于磁盘的输出缓存提供商。

+0

嗨菲尔,谢谢你的回答!我刚看到另一个解决方案:http://bit.ly/22wknT 你知道哪种解决方案更快吗? (我只在我的本地服务器上存储缓存,没有分布式存储需要) – silent 2010-05-05 20:40:15

+0

很难说没有测试它,但我期望* AppFabric会有边缘,因为它全部在内存中完成,基于磁盘的缓存很可能访问磁盘有一些延迟。 – PhilPursglove 2010-05-06 09:44:32