Asp.net 一个用于各种应用程序的缓存?

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

我有两个应用程序-一个是asp.net网站,另一个是windows服务

这两个应用程序都引用了我的业务层(库项目),它本身引用了我的数据访问层(库项目),它本身使用企业库数据应用程序块从sql server 2005数据库接收数据

目前,我使用BL中的System.Web.Caching.Cache对象来缓存我的一些对象:

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和其他第三方解决方案。