【问题标题】:How clear System.Runtime.Caching.MemoryCache of a running Windows service without stopping the service?在不停止服务的情况下如何清除正在运行的 Windows 服务的 System.Runtime.Caching.MemoryCache?
【发布时间】:2012-12-13 21:38:33
【问题描述】:

我有一项服务,我想在其中使用 MemoryCache,但是,我的要求之一是我需要能够手动清除所述 MemoryCache,而无需停止服务。

目前我们正在使用企业库中的 CacheManager(使用独立存储,所以我认为它在内存中,然后在需要时转储到文件),我们通过删除文件手动清除缓存。关于如何使用新的缓存库做类似事情的任何想法?

谢谢!

【问题讨论】:

    标签: .net caching service memorycache


    【解决方案1】:

    听起来您当前使用企业库的缓存具有文件系统依赖性。您可以通过将HostFileChangeMonitor 与每个缓存项相关联来对 MemoryCache 执行相同的操作。当监控的文件在磁盘上发生变化时,缓存项将被清除。

    【讨论】:

      【解决方案2】:

      无法清除服务外部的缓存,因为它绑定到 AppDomain。您需要自己实现一个清除缓存的入口点。

      之后,只需 Dispose 内存缓存并创建一个新的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多