首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MemoryCache对象变为空

MemoryCache对象变为空
EN

Stack Overflow用户
提问于 2015-01-06 14:16:45
回答 1查看 1.3K关注 0票数 0

我有一个缓存对象的缓存管理类,但是我有一个问题。有时,完全随机,MemoryCache.Default.Contains(keyName)变为null,而我的应用程序不需要任何缓存就能工作。我对这个问题很失望。

我该怎么办?

ASP.NET WebForms 4.0运行在Windows 2008 R2上,安装了.NET 4.5。

当我在本地机器上运行这个应用程序时,我从未遇到过这个问题。

代码语言:javascript
复制
public class CacheManager
{
    private static object _lockObject = new object();
    public static object GetItem(string keyName, Func<object> action)
    {
        if (!MemoryCache.Default.Contains(keyName)) {
            System.Threading.Monitor.Enter(_lockObject);
            try {
                if (!MemoryCache.Default.Contains(keyName)) {
                    dynamic value = action.Invoke();
                    MemoryCache.Default.Set(keyName, value, System.DateTime.Now.AddDays(10));
                }
            }
            finally {
                System.Threading.Monitor.Exit(_lockObject);
            }
        }

        return MemoryCache.Default.GetCacheItem(keyName).Value;
    }

    public static void ResetCache(string keyName)
    {
        if (MemoryCache.Default.Contains(keyName)) {
            System.Threading.Monitor.Enter(_lockObject);
            try {
                if (MemoryCache.Default.Contains(keyName)) {
                    MemoryCache.Default.Remove(keyName);
                }
            }
            finally {
                System.Threading.Monitor.Exit(_lockObject);
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-09 11:12:58

最后我发现了问题。我检查了IIS,我的应用程序池由于UnexpectedException而被重置。我的密码没什么问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27800561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档