【问题标题】:Flush Enterprise library cache block data of one ASP .NET web site from another从另一个 ASP .NET 网站刷新企业库缓存块数据
【发布时间】:2010-11-16 00:30:31
【问题描述】:
我有两个使用缓存管理器的相同静态实例的 ASP .NET 网站。第一个网站从数据库中获取数据并使用第四个提到的缓存管理器对象对其进行缓存。
我的问题是我无法使用相同的缓存管理器静态对象从我的第二个网站刷新这些缓存数据。尝试这样做有什么问题吗?这个问题的可能解决方案是什么? (任何有关该主题的文档材料将不胜感激)
提前谢谢你。
【问题讨论】:
标签:
asp.net
web-applications
caching
enterprise-library
flush
【解决方案1】:
这是一种方法。
在Site 2 中创建一个可以通过www.Site2Domain.com/clearECache 访问的方法
public void ClearECache()
{
try
{
CacheManagerSettings conf = (CacheManagerSettings)ConfigurationSourceFactory.Create()
.GetSection(CacheManagerSettings.SectionName);
conf.CacheManagers.ForEach(delegate(CacheManagerDataBase cache)
{
CacheFactory.GetCacheManager(cache.Name).Flush();
});
}
catch (Exception ex)
{
throw
}
}
现在从Site 1 执行HttpRequest/WebRequest 到site 1 URL
【解决方案2】:
你有两个选择:
- 创建 2 个缓存管理器实例
- 配置您的网站以使用不同的应用程序池