【问题标题】:Caching across Applications in .Net on a Windows Machine在 Windows 机器上的 .Net 中跨应用程序缓存
【发布时间】:2011-07-06 06:09:09
【问题描述】:

我正在尝试在 .Net 中实现缓存,这样缓存的数据不仅可以由可能在同一台机器上运行多次的应用程序访问,而且可以由可能在该机器上运行的其他类型的应用程序访问。它们可以是 Windows 服务、Web 服务、win 表单等。

我已经将 System.Runtime.Caching(因为企业应用程序块缓存将变得过时)作为实现此目的的一种手段。默认的 MemoryCache 不足以实现这一点,因为我不相信它可以跨应用程序域工作。

有没有一种方法可以实现我正在寻找的那种缓存,或者是否有某种缓存 dll(必须是免费的)可以用来实现我的目标?

有没有办法将 System.Runtime.Caching 与作用域为 MachineLevel 的 IsolatedStorage 结合使用?

我也看过 memcache 并且不能使用它,因为我们需要它在 Windows 机器上运行。我开始查看 SharedCache (http://www.codeproject.com/KB/web-cache/AdvanceCaching.aspx) 并对它的缺陷感到好奇。

谢谢。


-- 修订版 1--


我认为对我来说最佳解决方案是将 缓存 对象用于 内存映射文件 (http://msdn.microsoft.com/en-us/library /dd997372.aspx)。所以我现在的问题是是否有人使用 System.Runtime.Caching 对象做到了这一点。如有必要,必须有一种扩展它的方法......如何做到这一点的例子也将不胜感激。

【问题讨论】:

    标签: c# .net caching


    【解决方案1】:

    您正在寻找AppFabric Cache。它是来自 Microsoft 的 Windows Server 技术。它是免费的。

    我还应该说,如果你喜欢 memcached,你也可以在 Windows 上使用它,事实上 Microsoft Azure 团队成员曾经推荐过它,在 Windows Azure 上提供 AppFabric 缓存之前.

    【讨论】:

    • 我正在尝试在客户端机器上实现缓存...在所有机器上运行 AppFabric 可能不可行。我只是在寻找一个机器范围的缓存方案..仅此而已..只是一个简单的 dll 来完成这项工作:-)
    • +1 在需要时使用 MemCached 的 AppFabric。还取决于您的实际需求(除了创建可从不同帐户下的进程和其他有趣的东西访问的精美本地缓存......)您可以考虑走浏览器使用的路线 - 基于简单文件的本地缓存。
    • Alexei - AppFabric 是一个很棒的工具。但是,它不能在运行 xp 的客户端机器上使用。基于文件的本地缓存是一个可行的想法。你知道 System.Runtime.Cache 是否支持基于文件的本地缓存吗?
    【解决方案2】:

    您是否评估过 Microsoft Velocity?看看 - 我相信如果你不喜欢使用 AppFabric 缓存,这应该适合你: http://msdn.microsoft.com/en-us/magazine/dd861287.aspx#id0450004

    对于简单的基于客户端的缓存,您可以查看基于文件的缓存。

    【讨论】:

    • Sajoshi - 是的,我看过 Velocity。这是一个很棒的工具,可以让我们的生活更轻松……只是今天不行。它还没有准备好生产,但是当它准备好时,我一定会花时间使用它。
    猜你喜欢
    • 2013-01-09
    • 2013-04-08
    • 2017-05-22
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多