2012-04-09 13 views
6

¿Cómo/dónde se gestiona el caché de ASP.NET en IIS 7? Sé que está almacenado en la memoria del servidor, pero ¿cuál es el proceso que lo gestiona? ¿Está en el espacio de direcciones de w3wp.exe o está en otro proceso/ubicación? ¿Los datos de la sesión usan la caché o la sesión funciona de manera diferente?Ubicación de ASP.NET Cache

Respuesta

3

Configura dónde se almacenan los datos de la sesión en su web.config con sessionState element. Si se establece en InProc, se almacenará en la memoria en el proceso w3wp.exe que corresponde al grupo de aplicaciones de su aplicación. También podría, por ejemplo, almacenarlo en una instancia de SQL Server.

Si ese elemento no está definido en su archivo de configuración, verifique el nivel de máquina web.config para su versión/arquitectura de marco de destino.

+0

Tiene razón, gracias. También hice mi propia excavación (a través de Reflector) y obtuve más información. El objeto principal Caché ASP.NET (eventualmente) se implementa a sí mismo como una HashTable administrada. No hay vudú COM que esperaba a medias. Parece que todo el almacenamiento en caché de ASP.NET se realiza a través de un código administrado, es decir, todos los objetos de caché se almacenan en el espacio de direcciones de w3wp.exe. –

+0

Para respaldar esto más, siempre he pensado que reciclar el grupo de aplicaciones desalojará elementos de 'HttpContext.Cache'. No pude encontrar ninguna información de apoyo, pero eso me lleva a creer que está almacenada en la memoria en la instancia correspondiente de 'w3wp.exe'. – wsanville

+0

Sí, la información de soporte es que el caché se almacena como HashTable (consulte la clase System.Web.Caching.CacheSingle). Sin código no administrado en absoluto. Ahora ambos sabemos. :) –