2011-05-06 20 views
5

Quiero almacenar en caché los objetos que se extraen de una base de datos que a menudo no se modifican, porque cada vez que la página carga se seleccionan casi 2000 elementos, lo que provoca un problema de rendimiento notable durante la carga de la página.caché asp.net dentro de httpcontext

Después de la revisión here y algunos artículos de MSDN (lo más relevante es here), parece que se trata de soluciones para prevenir un solo usuario de hacer múltiples idas y vueltas a la base de datos, y que esta caché caducará una vez que el HttpRequest está cerrado.

¿Se puede aclarar la confusión, proporcionando una referencia aplicable si se encuentra?

Respuesta

6

Si desea almacenar los elementos en HttpRuntime.Cache, los elementos estarán aquí durante la vigencia del dominio de su aplicación, caducarán o serán eliminados. Lo que suceda primero. Tenga en cuenta que esto es exactamente lo mismo que HttpContext.Current.Cache que apunta a HttpRuntime.Cache. Invocar lo posterior es más fácil de trabajar en capas de servicio, ya que no tiene que preocuparse por si existe un contexto o no. El caché siempre existe.

Los elementos almacenados en HttpContext.Current.Request.Items solo existirán mientras dure esa solicitud. Esto es útil para almacenar información de solicitud única que podría leerse/escribirse a través de múltiples capas de su aplicación.

Cuestiones relacionadas