MattB bateu fora da água. +1 Eu responderei com mais detalhes, mas não pretendo aceitar os pontos dele. Vou acrescentar ao que ele disse.
Eu tenho uma configuração semelhante à que ele descreveu, e funciona muito bem. O ARR é o caminho a seguir, mesmo em um único servidor.
No entanto, gostaria de acrescentar algumas coisas.
Crie os 2 sites, conforme recomendado por Matt. Chame-os de algo como yoursite.com01 e yoursite.com02.
Crie 2 regras de reescrita de URL. Um para www.seudominio.com e outro para estadiamento.seudominio.com. Para produção, use {HTTP_HOST} com um valor de (^ www.seudominio.com.br $) | (seuIP). (ou qualquer ligação que você preferir) Para teste, use {HTTP_HOST} com um valor de (^ staging.yourdomain.com $). Ligue para as regras yoursite.com e staging.yoursite.com.
Regra de associação = yoursite.com ao site = yoursite.com01 e regra = staging.yoursite.com ao site = yoursite.com02.
Configure o FTP em staging.yoursite.com.
O tráfego de produção agora vai para Rule = staging.yoursite.com e Site = yoursite.com01. Stagging para o oposto.
Você pode implantar na preparação a qualquer momento, teste, pré-spin-up, teste de outras pessoas, etc. Faça-o durante o dia, não importa. Implante na mesma conta FTP sempre. Funciona muito bem com servidores de compilação.
Então, quando estiver pronto para entrar no ar, faça apenas três alterações: - mova a ligação FTP de yoursite.com02 para yoursite.com01 - altere a regra de regravação de URL yoursite.com para apontar para yoursite.com02 - altere o estadiamento da regra de regravação de URL. yoursite.com para apontar para yoursite.com01
Agora você tem tempo de inatividade zero, comutação instantânea e funcionalidade de reversão imediata!
Seu único objetivo a considerar é o estado da sessão fora de processo. Verifique se o servidor de estado aceita os dois IDs do site para que você não perca o estado da sessão durante a troca.
Observe também que este é apenas para a Web e não para o banco de dados.
Para scripts, use o Editor de Configuração. Faça as alterações desejadas e clique em "Gerar script". Ele fornecerá o código C #, appcmd ou AHAdmin.
Eu tenho isso em vigor há alguns meses com um front end de página da Web para trocar instâncias e nunca mais olho para trás. Torna as implantações tão atualizadoras em comparação às implantações tradicionais.