c# - net - Almacenamiento en caché de los datos de la aplicación en la memoria: MVC Web API
guardar datos temporales en c# (1)
Estoy escribiendo un webAPI de MVC que se utilizará para devolver valores que se vincularán a cuadros desplegables o se utilizarán como resultados de cuadro de texto de escritura anticipada en un sitio web, y quiero almacenar valores en la memoria caché para que no necesite realizar solicitudes de bases de datos cada vez que se golpea la API.
Voy a utilizar la clase MemoryCache y sé que puedo rellenar la caché cuando llegue la primera solicitud, pero no quiero que la primera solicitud a la API sea más lenta que otras. Mi pregunta es: ¿hay alguna manera de llenar automáticamente el caché cuando se inicia WebAPI por primera vez? Veo que hay una carpeta "App_Start", ¿tal vez solo tiro algo aquí?
Después de la población inicial, probablemente ejecutaré una solicitud por hora / por día para actualizar la memoria caché según sea necesario.
MemoryCache: http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache.aspx
UDPATE
La respuesta de Ela a continuación hizo el truco, básicamente solo necesitaba ver las habilidades de Global.asax. Gracias por la ayuda rápida aquí, esto me ha planteado una pregunta diferente sobre los pros / contras de los diferentes tipos de almacenamiento en caché.
Pros / Contras de diferentes opciones de almacenamiento en caché ASP.NET
Puede utilizar el método de inicio de aplicación global.asax para inicializar recursos. Recursos que se usarán en toda la aplicación básicamente.
El siguiente enlace debería ayudarlo a encontrar más información: http://www.asp.net/web-forms/tutorials/data-access/caching-data/caching-data-at-application-startup-cs
Sugerencia: si usa el proceso de almacenamiento en caché (que suele ser el caso si almacena en caché algo dentro del contexto / hilo de la web), tenga en cuenta que su aplicación web está controlada por IIS. La configuración estándar de IIS apagará su aplicación web después de 20 minutos si no se deben atender las solicitudes de los usuarios. Esto significa que todos los recursos que tenga en la memoria serán liberados.
Después de que esto suceda, la próxima vez que un usuario acceda a su aplicación web, se volverá a ejecutar el asa global, el inicio de la aplicación, porque IIS reinicia su aplicación web. Si desea evitar este comportamiento, configure el tiempo de espera inactivo del grupo de aplicaciones para que no exceda el tiempo de espera después de 20 minutos. O utiliza una estrategia de caché diferente (caché persistente, caché distribuida ...).
Para configurar IIS para esto, aquí puede encontrar más información: http://brad.kingsleyblog.com/IIS7-Application-Pool-Idle-Time-out-Settings/