【问题标题】:System.Web.Caching & System.Runtime.Caching against IIS App Pool restarts针对 IIS 应用程序池的 System.Web.Caching 和 System.Runtime.Caching 重新启动
【发布时间】:2017-06-15 06:58:12
【问题描述】:

在 Asp.net Forms 或 MVC 应用程序中,使用 System.Web.Caching 的缓存项会在应用程序池重新启动时清除。 但是如果使用 System.Runtime.Caching 实现缓存会发生什么?

【问题讨论】:

    标签: asp.net asp.net-mvc caching iis asp.net-caching


    【解决方案1】:

    但是如果缓存是使用 System.Runtime.Caching 实现的呢?

    如果您使用的是MemoryCache 默认实现,则会发生完全相同的情况,因为这些项目将存储在 AppDomain 的内存中。如果您希望缓存项在应用程序池重新启动后仍然存在,您可能需要使用分布式缓存系统,例如 Redis 或 Memcached。通过使用分布式缓存系统,您的 Web 集群的所有节点都可以访问这些缓存项并可能利用它们。

    【讨论】:

    • 非常感谢!!!我认为 System.runtime.cache 将其与 appdomain 分开。有没有办法在 MVC 应用程序和 Windows 服务应用程序之间共享 MemoryCache 项?
    • 不,没有办法在 AppDomain 之间共享 MemoryCache。它不是为此目的而设计的。您将需要一个可以共享的分布式缓存。
    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 2023-04-01
    • 2012-06-11
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多