我有以下问题,我有这种缓存管理:
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,但没有结果.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。