¿Cuál es la mejor manera de restablecer de forma remota la caché del servidor en una granja de servidores web?

StackOverflow https://stackoverflow.com/questions/76855

  •  09-06-2019
  •  | 
  •  

Pregunta

Cada uno de nuestros servidores web de producción mantiene su propio caché para sitios web separados (aplicaciones web ASP.NET).Actualmente, para borrar un caché, iniciamos sesión en el servidor y "tocamos" el archivo web.config.

¿Alguien tiene un ejemplo de una forma segura de remotamente ¿Restablecer el caché para una aplicación web específica?Lo ideal sería poder decir "borrar el caché de la aplicación X que se ejecuta en todos los servidores", pero también "borrar el caché de la aplicación X que se ejecuta en el servidor Y".

Ediciones/aclaraciones:

  • Probablemente debería aclarar que hacer esto a través de la aplicación en sí no es realmente una opción (es decir,algún tipo de inicio de sesión en la aplicación, navegar a una página específica o controlador que borraría el caché).Para hacer algo como esto necesitaríamos deshabilitar/evitar el registro y el código de seguimiento de estadísticas, o estropear nuestras estadísticas.

  • Sí, el caché caduca periódicamente.Sin embargo, lo que me gustaría hacer es configurar algo para poder caducar un caché específico a pedido, generalmente después de cambiar algo en la base de datos (estamos usando SQL 2000).Podemos hacer esto ahora, pero solo iniciando sesión en los servidores.

¿Fue útil?

Solución 2

Encontrado una DevX artículo sobre una utilidad táctil que parece útil.

Voy a intentar combinar eso con una tabla en la base de datos (agregue un registro y la utilidad táctil lo encontrará y actualizará el archivo web.config apropiado) o un servicio web (haga una llamada y se llamará a la utilidad táctil para actualizar el archivo web.config apropiado)

Otros consejos

Para cada aplicación, puede escribir un pequeño script cache-dump.aspx para eliminar los datos de la caché/aplicación.Cópielo en todas sus aplicaciones y escriba un script central para administrar las llamadas.

Por seguridad, puede agregar todo tipo de búsquedas de autenticación o verificación de IP.

Así es como hago el volcado de aplicaciones real:

Context.Application.Lock()
Context.Session.Abandon()
Context.Application.RemoveAll()
Context.Application.UnLock()

Puede que esto no sea "elegante", pero podría configurar una tarea programada que ejecute un script por lotes.Básicamente, el script "tocaría" web.config (o algún otro archivo que provoque una recompilación).

De lo contrario, ¿la caché de su aplicación no está configurada para caducar después de N minutos?

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