MattB lo golpeó fuera del agua. +1 responderé con más detalles, pero no estoy buscando tomar sus puntos. Agregaré a lo que dijo.
Tengo una configuración similar a la que describió, y funciona muy bien. ARR es el camino a seguir, incluso en un solo servidor.
Sin embargo, agregaría un par de cosas.
Crea los 2 sitios, como Matt recomendó. Llámalos algo así como yoursite.com01 y yoursite.com02.
Crear 2 reglas de reescritura de URL. Uno para www.yourdomain.com y otro más staging.yourdomain.com. Para la producción, use {HTTP_HOST} con un valor de (^ www.yourdomain.com $) | (yourIP). (o cualquier enlace que prefiera) Para la preparación, use {HTTP_HOST} con un valor de (^ staging.yourdomain.com $). Llame a las reglas yoursite.com y staging.yoursite.com.
Vincular Rule = yoursite.com a site = yoursite.com01 y rule = staging.yoursite.com a site = yoursite.com02.
Configurar FTP en staging.yoursite.com.
El tráfico de producción ahora va a Rule = staging.yoursite.com y Site = yoursite.com01. Despedidas a lo contrario.
Puede implementar la puesta en escena en cualquier momento, probar, pre-spinup, hacer que otras personas prueben, etc. Hágalo durante el día, no importa. Implemente en la misma cuenta FTP cada vez. Funciona muy bien con servidores de compilación.
Luego, cuando esté listo para comenzar, solo realice 3 cambios: - mueva el enlace FTP de yoursite.com02 a yoursite.com01 - cambie la regla de reescritura de URL yoursite.com para que apunte a yoursite.com02 - cambie la puesta en escena de la regla de reescritura de URL. yoursite.com para apuntar a yoursite.com01
¡Ahora tiene cero tiempo de inactividad, conmutación instantánea, con funcionalidad de reversión inmediata!
Lo único que debes considerar es tu estado de sesión fuera de proceso. Asegúrese de que su servidor de estado acepte ambos identificadores de sitio para que no pierda el estado de la sesión durante el intercambio.
También tenga en cuenta que esto es solo web y no base de datos.
Para las secuencias de comandos, use el Editor de configuración. Realice los cambios que desee y luego haga clic en "Generar secuencia de comandos". Le dará el código C #, appcmd o AHAdmin.
Lo he implementado durante algunos meses con un front-end de página web para intercambiar instancias y nunca estoy mirando hacia atrás. Hace que las implementaciones sean tan refrescantes en comparación con las implementaciones tradicionales.