当前位置:  开发笔记 > 后端 > 正文

各种应用程序的一个缓存?

如何解决《各种应用程序的一个缓存?》经验,为你挑选了1个好方法。

我有两个应用程序 - 一个是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;
        }
    }

因为两个应用程序都是自己运行的 - 它们都在自己使用单独的Cache对象 - 实际上这就是问题所在:

如果我更改asp.net网站中的对象并将其保存到数据库.从缓存中删除此缓存键的对象 - asp.net应用程序的缓存!没关系.

但Windows服务的缓存变得陈旧!

反之亦然

两个应用程序是否可能使用相同的缓存?两个应用程序的一个缓存?

我想到的唯一选择是我将不得不使用SqlDependency

Sql Server 2005基于通知的缓存失效

还有其他方法吗?

编辑:我刚刚找到http://www.codeplex.com/SharedCache.我会试试看.因为速度将在2009年中期之前处于候选发布状态.



1> Scott Hansel..:

你应该仔细看看微软的新免费分布式缓存"Velocity".

这是我在这个主题上做过的播客:http: //www.hanselman.com/blog/HanselminutesPodcast116DistributedCachingWithMicrosoftsVelocity.aspx

以下是MSDN的详细信息:http://msdn.microsoft.com/en-us/data/cc655792.aspx

这是下载和示例:http://code.msdn.microsoft.com/velocity

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有