我的ASP.Net后面有一个线程。在这个线程中,我将数据放入缓存中,如下所示:

HttpRuntime.Cache.Insert("test", "test", null, DateTime.Today.AddHours(6), Cache.NoSlidingExpiration);


在另一个线程(网页)上,我首先检查缓存是否包含任何数据,然后尝试从缓存中获取对象,如下所示:

 if (HttpRuntime.Cache.Count > 0) {
          var test = (string)HttpRuntime.Cache["test"];
 }


编辑:每当我尝试执行var test = (string)HttpRuntime.Cache["test"];时,缓存将为空(或将删除对象,未在缓存中测试多个对象),并且var test也为null。这当然是在HttpRuntime.Cache.Count大于0时

哦,它没有任何例外

最佳答案

您的代码中可能存在不一致的信息,表明DateTime.Today.AddHours(6)无法正常工作。您应该使用DateTime.Now.AddHours(6)

DateTime.Today是从12:00 AM开始的当前日期,如果您的代码在6:00 AM之后运行,则显然httpruntime缓存不可用。

08-18 12:09