在ASP.NET中使用System.Web.Caching.Cache类时出现问题

在ASP.NET中使用System.Web.Caching.Cache类时出现问题,asp.net,caching,Asp.net,Caching,所以我正在做一个使用ASP.NET的项目。我试图调用Cache[“key”],但编译器抱怨System.Web.Caching.Cache“此时nat有效” 如果我调用Cache obj=new Cache();obj总是空的 我可以访问HttpContext.Current.Cache-但这不允许我在Insert()方法中指定绝对过期和滑动过期 有人能帮我吗?您应该能够在HttpRuntime.Cache上调用insert来执行绝对或滑动过期。它有几个重载。例: HttpRuntime.Cac

所以我正在做一个使用ASP.NET的项目。我试图调用Cache[“key”],但编译器抱怨System.Web.Caching.Cache“此时nat有效”

如果我调用Cache obj=new Cache();obj总是空的

我可以访问HttpContext.Current.Cache-但这不允许我在Insert()方法中指定绝对过期和滑动过期


有人能帮我吗?

您应该能够在HttpRuntime.Cache上调用insert来执行绝对或滑动过期。它有几个重载。例:

HttpRuntime.Cache.Insert("EXAMPLE_KEY", 
                        exampleItem, 
                        Nothing,                           
                        DateTime.Now.AddHours(1),
                        System.Web.Caching.Cache.NoSlidingExpiration);

同样的代码也适用于HttpContext.Current.Cache

我建议您试试library下的PCache类。即使您使用该库的免费版本,这个类也没有限制。与ASP.NET缓存类相比,它有更多的功能,您不必处理这些问题。网站上提供了一个简单的示例项目

不能有绝对过期和滑动过期吗?我不知道这是怎么回事,这两种形式的到期肯定会在某一点上相互矛盾。因此,这是不允许的。一个值应该被支持,另一个值应该是System.Web.Caching.Cache.NoSlidingExpiration和System.Web.Caching.Cache.NoAbsoluteExpiration。根据HttpContext.Current.Cache而不是HttpRuntime.Cache,使用HttpContext.Current.Cache没有真正的好处,因此您发布的代码示例应该已经足够了。