c# – MemoryCache在第一次到期后总是返回“null”

c# – MemoryCache在第一次到期后总是返回“null”,第1张

概述我有以下问题,我有这种缓存管理: public class CacheManager : ICacheManager { private readonly ObjectCache cache; public CacheManager() { this.cache = MemoryCache.Default; } public void AddI 我有以下问题,我有这种缓存管理:

public class CacheManager : ICacheManager {    private Readonly ObjectCache cache;    public CacheManager() {        this.cache = MemoryCache.Default;    }    public voID AddItem(string key,object itemToCache,double duration) {        var end = DateTime.Now.AddSeconds(duration);        this.cache.Add(key,itemToCache,end);    }    public T Get<T>(string key) where T : class {        try {            return (T)this.cache[key];        }        catch (Exception ex) {            return null;        }    }    public voID Remove(string key) {        this.cache.Remove(key);    }}

很简单

编辑I(问题文本中的错误修复)

问题:当任何密钥的缓存过期时,以下所有调用以获取缓存中的任何对象都将返回“null”.我检查钥匙,总是正确的.

问题仅发生在我的PC中的客户端服务器中,并且我的服务器工作正常.

谢谢.

编辑II(进展)

当我们在客户的服务器中重新启动应用程序池时,您的问题将在几个小时内解决.

我们的网站有一个特定的应用程序池,具有以下设置:

管道管理器模式:集成
框架:v4.0
启用32位应用程序:True.

其他设置,如默认.

在服务器上,我们有2个站点,一个启用了“启用32位应用程序”,如果两个站点都被禁用,则发生错误,但不知道这是否是问题.

编辑III(进展)

由于我们未能解决问题,我们决定切换到Httpcontext.Current.Cache,我们可以解决问题.我们想要另一种解决方案并继续使用MemoryCache,但没有结果.

解决方法 复活一个旧问题,但我认为这个问题是由于一个只在ASP.NET 4.5中修复的错误,但是对于早期版本有一个修补程序.

见这个帖子:MemoryCache Empty : Returns null after being set

总结

以上是内存溢出为你收集整理的c# – MemoryCache在第一次到期后总是返回“null”全部内容,希望文章能够帮你解决c# – MemoryCache在第一次到期后总是返回“null”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1234505.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存