我想使用AppFabric(Velocity)作为磁盘缓存提供程序来使用ASP.NET 4.0的可扩展输出缓存功能。但是当我安装AppFabric时,我发现配置非常困难,我不知道如何让我的ASP.NET应用程序能够使用它。所以我想知道是否有一个易于理解的教程配置两者?是否有关于使用.NET 4.0可扩展输出缓存配置AppFabric缓存的分步教程?
或者,除了AppFarbric之外,还有其他更简单的方法来实现ASP.NET的磁盘缓存吗?
我想使用AppFabric(Velocity)作为磁盘缓存提供程序来使用ASP.NET 4.0的可扩展输出缓存功能。但是当我安装AppFabric时,我发现配置非常困难,我不知道如何让我的ASP.NET应用程序能够使用它。所以我想知道是否有一个易于理解的教程配置两者?是否有关于使用.NET 4.0可扩展输出缓存配置AppFabric缓存的分步教程?
或者,除了AppFarbric之外,还有其他更简单的方法来实现ASP.NET的磁盘缓存吗?
我在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基于磁盘的输出缓存提供商。
嗨菲尔,谢谢你的回答!我刚看到另一个解决方案:http://bit.ly/22wknT 你知道哪种解决方案更快吗? (我只在我的本地服务器上存储缓存,没有分布式存储需要) – silent 2010-05-05 20:40:15
很难说没有测试它,但我期望* AppFabric会有边缘,因为它全部在内存中完成,基于磁盘的缓存很可能访问磁盘有一些延迟。 – PhilPursglove 2010-05-06 09:44:32
AppFabric可能有点混乱配置。有什么需要帮助的吗? – PhilPursglove 2010-05-05 07:20:17