Pregunta

Actualmente estoy trabajando en un sitio web a gran escala, es muy dinámico, y por lo tanto tiene que almacenar un gran volumen de información en la memoria de forma casi permanente (cosas como opciones de configuración de la caja, o el árbol utilizado para implementar la estructura de menús).

Esta información no es específica de la sesión, se consistente para todos los hilos utilizar el sitio.

¿Cuál es la mejor manera de mantener estos datos a nivel mundial dentro de ASP, por lo que se puede acceder cuando sea necesario, en lugar de re-cargado en cada uso?

¿Fue útil?

Solución

Cualquier AppSettings en web.config son href="https://stackoverflow.com/questions/274762/asp-net-where-how-is-web-config-cached"> (es decir, , no se leen desde el XML cada vez que necesitan para su uso).

manipular la caché mismo .

Editar : Mejores enlaces ...

Otros consejos

No es precisamente claro si su información es sesión específica o no ... si es así, a continuación, utilizar el objeto Session ASP. Dada su descripción de la escala, es probable que desee mirar a almacenar el estado en SQL Server:

http://support.microsoft.com/kb/317604

Ese es el enfoque 101. Si usted está buscando algo un poco más robusto, a continuación, echa un vistazo a memcached (que pronuncia Mem-Cache-Dee):

http://www.danga.com/memcached/

Ese es el sistema que aplicaciones como Facebook y Twitter uso.

Buena suerte!

Usando la función de almacenamiento en caché de ASP.NET es una buena opción que pienso. Además de la respuesta de Juan, puede utilizar almacenamiento en caché bloque de aplicación de Microsoft Patterns & Practices del equipo .

Este es un buen video explorar las diferentes maneras de conservar el estado puede aplicación. http://www.asp.net/learn/3.5-videos/ vídeo-11.aspx Bruce en el objeto de aplicación, que es global para toda la aplicación, para todos los usuarios y que muestra cómo crear un contador de visitas (obviamente, en lugar de almacenar un entero podría almacenar objetos). Si necesita realizar cambios, es necesario utilizar una cerradura para la concurrencia, y no estoy seguro de cómo se maneja cantidades grande de datos, ya que nunca he tenido que mantener mucho allí.

Por lo general mantener las cosas así en el objeto de aplicación.

Si las páginas son dependientes unos de otros y que publican entre sí, se puede usar de peticiones de objetos de la página. Probablemente no es la respuesta que está buscando, pero sin duda uno de los más pequeños en la memoria para su uso.

Me he encontrado la misma situación en el pasado y ha encontrado una interfaz para ser la solución más escalable. caché de la aplicación puede ser la respuesta hoy, pero va a escalar para satisfacer sus necesidades?

Si necesita ampliar, es posible cookies, o algún tipo de almacenamiento de base de datos temporal para ser el truco. Basta con añadir un nuevo método para la interfaz y configurar la interfaz para elegir el "modo" de web.config.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top