你可以将MemoryCache.Default用作单身人士吗?

时间:2016-02-22 15:01:17

标签: c# asp.net memorycache

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

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

我的印象是MemoryCache.Default基本上是一个单身人士,我在那里缓存的任何东西都会留在我的网站的生命周期。要么这个假设是错误的,要么在那里有一些新的代码明确地消除了缓存。我在代码中查找了MemoryCache的所有引用,并没有发现任何可疑内容。是否有任何其他看似无关的方法调用可能会触发默认内存缓存的破坏?或者我误解了MemoryCache的工作原理?

1 个答案:

答案 0 :(得分:1)

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

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