您可以使用 MemoryCache.Default 作为单例吗?

本文关键字:单例吗 Default 可以使 MemoryCache | 更新日期: 2023-09-27 18:35:45

我有一个 ASP.NET 的API网站。 我们正在MemoryCache.Default内缓存某些数据。

到目前为止,这一直运行良好,但是已经编写了一些新代码,突然之间,现在MemoryCache被清除了。 我通过检查MemoryCache.Default的哈希代码进行了验证,在代码执行的某个时刻,哈希代码正在发生变化,即它是我们突然使用的全新缓存。

我的印象是MemoryCache.Default基本上是一个单例,我缓存在那里的任何内容都将在我的网站的生命周期内保留在那里。 要么这个假设是错误的,要么是有一些新代码明确地吹走了缓存。 我在代码中查找了对MemoryCache的所有引用,没有发现任何可疑之处。 是否有任何其他看似无关的方法调用可能会触发默认内存缓存的销毁? 还是我误解了MemoryCache的工作原理?

您可以使用 MemoryCache.Default 作为单例吗?

发现问题。 Web API 中引入了一个第三方工具。 它正在做的事情是触发网站的关闭(通过捕获Application_End中的断点来证明)。 没有抛出异常,但是在调用该工具后,网站被关闭,如果我们注释掉该行,则不会关闭。

仍在研究解决方案,但至少现在我们知道原因......