Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.Web.Caching.Cache为缓存中的密钥返回null_C#_Caching_Client - Fatal编程技术网

C# System.Web.Caching.Cache为缓存中的密钥返回null

C# System.Web.Caching.Cache为缓存中的密钥返回null,c#,caching,client,C#,Caching,Client,我有一些代码(客户端)试图缓存来自web服务的响应。我将响应保存在从System.Web.HttpRuntime获取的System.Web.Caching.Cache对象中 我打了一次电话,然后又打了一次,控制台输出说它是从缓存加载的。但我从来没有得到控制台输出。我在调试器中运行它,并在Get和缓存处放置一个断点作为条目,缓存中的键与我传递到Get的键相同,但它仍然返回null 基本上代码是这样的 public object MakeRequest(string uri) { (break p

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

我打了一次电话,然后又打了一次,控制台输出说它是从缓存加载的。但我从来没有得到控制台输出。我在调试器中运行它,并在Get和缓存处放置一个断点作为条目,缓存中的键与我传递到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;
}
Querier是一个发出http请求并反序列化该对象然后返回它的对象

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

所以我没有仔细查看这两个字符串,一个与另一个略有不同,它们都访问了同一个网页,但通过字符串比较器方法并不相等。

Querier.Chache[uri]而不是Cache,我想这是一个打字错误?!Querier.MakeRequest(uri)是否有可能返回空值?出于某种原因,它在接下来的23个小时内不会让我返回空值