¿Cómo bloquear una aplicación web para el mantenimiento sin pérdida de trabajo no salvado?

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

Pregunta

Tengo una gran aplicación web en ASP .NET (no es que la tecnología sea importante aquí) que actualmente no tiene una forma de bloquearse para el mantenimiento sin que los usuarios actuales pierdan su trabajo. Como no he implementado algo como esto antes, me gustaría saber sobre algunas de las precauciones estándar y los pasos que los desarrolladores toman para tal operación.

Estas son algunas de las preguntas en las que puedo pensar:

  • ¿Debería cada página redirigir a una página "Sitio Down para Mantenimiento" o hay una forma más central de evitar la interacción?
  • Cómo centralizar un mantenimiento programado de tal manera que las operaciones del usuario se bloqueen antes de que el sitio esté bloqueado. Evitando así la pérdida de trabajo no salvado.

La aplicación está basada en datos e implementa ámbitos de transacciones en la capa de negocios. No utiliza el equilibrio de carga o la replicación. Puede que me equivoque, pero no se siente bien "que el BLL maneje esto. Se agradecería cualquier sugerencia o enlace a artículos.

¿Fue útil?

Solución

Una forma de hacer una página de mantenimiento es usar la función App_offline.htm de IIS. Usando esta función, podrá mostrar la misma página HTML a todos sus usuarios que los notifiquen sobre el mantenimiento.

Hay una buena publicación aquí en Stackoverflow al respecto. ASP.NET 2.0 - Cómo usar app_offline.htm.

Otra cosa que podría hacer es notificar a sus usuarios que hay un mantenimiento programado para que también sean conscientes y dejen de usar la aplicación.

Todo eso depende del tiempo que necesite actualizar su aplicación. Si la actualización es cargar los nuevos archivos y no tomar más que uno o dos minutos, es probable que sus usuarios ni siquiera lo vean.

Otros consejos

Una respuesta que no es útil que pueda ser útil: diseñe la aplicación para que pueda actualizarse sobre la mosca de manera transparente a sus usuarios. Entonces nunca tendrá una ventana de mantenimiento de la que los usuarios realmente deben preocuparse. No hay necesidad de bloquear la aplicación porque todo sigue funcionando. Si las transacciones se eliminan, es un error en la aplicación porque hay un requisito explícito de que la aplicación se puede actualizar con transacciones en progreso, por lo que se ha codificado para admitir eso y hay pruebas que verifican esa funcionalidad.

Considere como un ejemplo de Netflix: ¿Tiene una ventana de mantenimiento bloqueada? No es que el público en general sepa. :-)

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