【问题标题】:System.Web.Caching.Cache returning null for a key in the cacheSystem.Web.Caching.Cache 为缓存中的键返回 null
【发布时间】:2010-06-21 19:45:34
【问题描述】:

我有一些代码(客户端)试图缓存来自 Web 服务的响应。我将响应保存在从 System.Web.HttpRuntime 获取的 System.Web.Caching.Cache 对象中。

我打了一次电话,然后我再打一次,控制台输出显示它是从缓存中加载的。但我从来没有得到控制台输出。我在调试器中运行它并在 Get 和 Cache 处放置一个断点作为条目,并且缓存中的键与我传递给 get 的键相同,但它仍然返回 null?????

基本上代码是这样的。


public object MakeRequest(string uri)
{
(break point)object retList = Querier.Cache.Get(uri);

            if (retList != null)
            {
                Console.WriteLine("Loaded from Cache");

            }
            retList = Querier.MakeRequest(uri);
            Querier.Chache[uri] = retList;
            return retList;
}

查询器是一个对象,它发出我的 http 请求并反序列化该对象然后返回它。

有人知道为什么缓存返回 null 而不是存储在其中的对象吗?这让我不知所措,因为调试器显示内部密钥和我传入的密钥都是相同的字符串(尽管不是在同一个地方形成) 提前致谢

【问题讨论】:

  • Querier.Chache[uri] 而不是 Cache 我猜是错字?! Querier.MakeRequest(uri) 是否有机会返回 null?

标签: c# caching client


【解决方案1】:

所以事实证明我在两个字符串上看起来不够近,一个与另一个略有不同,它们都进入了同一个网页,但通过字符串比较方法不相等。

【讨论】:

  • 由于某种原因它不会再让我再过 23 小时
猜你喜欢
  • 2018-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 1970-01-01
相关资源
最近更新 更多