Pergunta

Eu tenho um grande aplicativo da Web no ASP .NET (não que a tecnologia seja importante aqui) que atualmente não tem uma maneira de ser bloqueado para manutenção sem que os usuários atuais perderem seu trabalho. Como não implementei algo assim antes, gostaria de ouvir sobre algumas das precauções e etapas padrão que os desenvolvedores tomam para essa operação.

Aqui estão algumas das perguntas que eu consigo pensar:

  • Cada página deve redirecionar para uma página "Site para manutenção" ou existe uma maneira mais central de evitar a interação?
  • Como centralizar uma manutenção agendada para que as operações do usuário sejam presas antes que o site seja bloqueado. Impedindo assim a perda de trabalho não salvo.

O aplicativo é orientado a dados e implementa escopos de transação na camada de negócios. Não usa balanceamento ou replicação de carga. Posso estar errado, mas não se sente certo 'ter o BLL lide com isso. Quaisquer sugestões ou links para artigos seriam apreciados.

Foi útil?

Solução

Uma maneira de fazer uma página de manutenção é usar o recurso app_offline.htm do IIS. Usando esse recurso, você poderá mostrar a mesma página HTML para todos os seus usuários notificando -os sobre a manutenção.

Há um bom post aqui em Stackoverflow sobre isso. ASP.NET 2.0 - Como usar app_offline.htm.

Outra coisa que você poderia fazer é notificar seus usuários de que existe uma manutenção programada para que eles também estejam cientes e parem de usar o aplicativo.

Tudo depende do tempo que você precisa para atualizar seu aplicativo. Se a atualização é fazer o upload dos novos arquivos e não levar mais de um minuto ou dois, é mais provável que seus usuários não o vejam.

Outras dicas

Uma resposta que não é de resposta que pode ser útil: projete o aplicativo para que possa ser atualizado em tempo real de forma transparente para seus usuários. Então você nunca tem uma janela de manutenção com a qual os usuários realmente precisam se preocupar. Não há necessidade de bloquear o aplicativo porque tudo continua funcionando. Se as transações forem descartadas, isso é um bug no aplicativo, porque existe um requisito explícito de que o aplicativo possa ser atualizado com transações em andamento, por isso foi codificado para apoiar isso e há testes que verificam essa funcionalidade.

Considere como exemplo Netflix: ele tem uma janela de manutenção bloqueada? Não que o público em geral saiba. :-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top