Asp.net 一个用于各种应用程序的缓存?
我有两个应用程序-一个是asp.net网站,另一个是windows服务 这两个应用程序都引用了我的业务层(库项目),它本身引用了我的数据访问层(库项目),它本身使用企业库数据应用程序块从sql server 2005数据库接收数据 目前,我使用BL中的System.Web.Caching.Cache对象来缓存我的一些对象:Asp.net 一个用于各种应用程序的缓存?,asp.net,sql-server,caching,Asp.net,Sql Server,Caching,我有两个应用程序-一个是asp.net网站,另一个是windows服务 这两个应用程序都引用了我的业务层(库项目),它本身引用了我的数据访问层(库项目),它本身使用企业库数据应用程序块从sql server 2005数据库接收数据 目前,我使用BL中的System.Web.Caching.Cache对象来缓存我的一些对象: public static System.Web.Caching.Cache Cache { get { if
public static System.Web.Caching.Cache Cache
{
get
{
if(cache == null)
{
if (System.Web.HttpContext.Current != null)
{
//asp.net
cache = System.Web.HttpContext.Current.Cache;
}
else
{
//windows service
cache = System.Web.HttpRuntime.Cache;
}
}
return cache;
}
}
由于这两个应用程序都是独立运行的—它们都单独使用一个缓存对象—实际上这就是问题所在:
如果我在asp.net网站中更改对象并将其保存到数据库中。此缓存键的对象将从缓存中删除-asp.net应用程序的缓存!那很好
但是windows服务的缓存已过时
反之亦然
两个应用程序是否可能使用相同的缓存?两个应用程序都有一个缓存
我考虑的唯一选择是,我必须将SqlDependency与
还有别的办法吗
编辑:
我刚找到。我要试一试。
因为velocity将在2009年年中之前处于发布候选状态。我认为您需要的是像memcached这样的分布式缓存系统。但还有更多,只要快速谷歌一下,你就会找到你想要的 问候,
Jochen我认为您需要的是像memcached这样的分布式缓存系统。但还有更多,只要快速谷歌一下,你就会找到你想要的 问候,
Jochen您应该仔细看看微软新推出的免费分布式缓存“Velocity” 以下是我就这一主题所做的播客: 以下是MSDN的详细信息:
以下是下载和示例:您应该仔细看看微软新推出的免费分布式缓存“Velocity” 以下是我就这一主题所做的播客: 以下是MSDN的详细信息:
以下是下载和示例:缓存仅适用于每个应用程序域。显然,您不能在web应用程序和web服务之间共享相同的缓存。 所以您必须通过各种方式使2个缓存同步。将缓存依赖项对象添加到缓存中,一旦数据发生更改,就会使两个缓存项无效,并将对象重新加载到缓存中。
您可以使用轮询或QN(更好的性能)作为缓存依赖机制 缓存仅适用于每个应用程序域。显然,您不能在web应用程序和web服务之间共享相同的缓存。 所以您必须通过各种方式使2个缓存同步。将缓存依赖项对象添加到缓存中,一旦数据发生更改,就会使两个缓存项无效,并将对象重新加载到缓存中。
您可以使用轮询或QN(更好的性能)作为缓存依赖机制 斯科特的道具,但velocity还没有为任何人的生产环境做好准备。我听到了你的话,但velocity已经全面投入生产。也就是说,还有memcached和其他第三方解决方案。斯科特的道具,但velocity还没有为任何人的生产环境做好准备。我听到了你的话,但velocity已经全面投入生产。也就是说,还有memcached和其他第三方解决方案。