System.Web.Caching.Cache为缓存中的键返回null

时间:2010-06-21 19:45:34

标签: c# caching client

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

我拨打一次电话,然后再次拨打电话并输出一个控制台输出,说明它是从缓存中加载的。但我永远不会得到控制台输出。我在调试器中运行它,并在Get和Cache中设置一个断点作为条目,缓存中的密钥与我传入get的密钥相同但它仍然返回null ????? / p>

基本上代码看起来像这样。


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;
}

Querier是一个对象,它使我的http请求反序列化然后返回它。

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

1 个答案:

答案 0 :(得分:0)

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