2009-02-10 13 views
7

Estoy trabajando en un proyecto que usa ASP.NET. Intento llamar a Cache ["key"] pero el compilador se queja de que System.Web.Caching.Cache es "nat valid en este momento".Problema al usar la clase System.Web.Caching.Cache en ASP.NET

Si llamo a Cache obj = new Cache(); el obj es siempre nulo.

Puedo acceder a HttpContext.Current.Cache, pero esto no me permite especificar una caducidad absoluta y un vencimiento deslizante en el método Insertar().

¿Alguien me puede ayudar?

Respuesta

14

Debe poder expiración absoluta o deslizante llamando a la inserción en HttpRuntime.Cache. Tiene varias sobrecargas. Ejemplo:

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

El mismo código exacto también debería funcionar con HttpContext.Current.Cache.

+0

¿No puede haber una expiración absoluta Y una expiración decreciente? Parece uno o el otro. – Ash

+0

No estoy seguro de cómo funcionaría, las dos formas de vencimiento seguramente se contradirían entre sí en algún momento. Por esta razón, no está permitido. Un valor debe ser suplido y el otro debe ser System.Web.Caching.Cache.NoSlidingExpiration y System.Web.Caching.Cache.NoAbsoluteExpiration. –

0

Le sugiero que pruebe la clase de PCache en la biblioteca PokeIn. Incluso si usa la edición GRATUITA de esa biblioteca, esta clase no tiene límites. Tiene muchas más funcionalidades en comparación con la clase ASP.NET Cache y no tiene que lidiar con estos problemas. hay un proyecto de muestra simple disponible en el sitio web.

Cuestiones relacionadas