Estou procurando diferentes técnicas / ferramentas que você usa para implantar um projeto de aplicativo da web ASP.NET ( NÃO ASP.NET) para produção?
Estou particularmente interessado no fluxo de trabalho que está acontecendo entre o momento em que seu servidor Continuous Integration Build descarta os binários em algum local e o momento em que a primeira solicitação do usuário atinge esses binários.
Você está usando algumas ferramentas específicas ou apenas XCOPY? Como o aplicativo é empacotado (ZIP, MSI, ...)?
Quando um aplicativo é implantado pela primeira vez, como você configura o App Pool e o diretório virtual (você os cria manualmente ou com alguma ferramenta)?
Quando um recurso estático é alterado (CSS, JS ou arquivo de imagem), você reimplanta o aplicativo inteiro ou apenas o recurso modificado? E quando uma página assembly / ASPX muda?
Você acompanha todas as versões implantadas de um determinado aplicativo e, caso algo dê errado, você tem procedimentos para restaurar o aplicativo a um estado anterior de funcionamento conhecido?
Sinta-se à vontade para completar a lista anterior.
E aqui está o que usamos para implantar nossos aplicativos ASP.NET:
- Adicionamos um projeto de implantação da Web à solução e o configuramos para construir o aplicativo da Web ASP.NET
- Adicionamos um Projeto de instalação ( NÃO Projeto de configuração da Web) à solução e o configuramos para obter a saída do Projeto de implantação da Web
- Adicionamos uma ação de instalação personalizada e, no evento OnInstall, executamos um assembly .NET de construção personalizada que cria um pool de aplicativos e um diretório virtual no IIS usando System.DirectoryServices.DirectoryEntry (esta tarefa é executada apenas na primeira vez que um aplicativo é implantado) . Oferecemos suporte a vários sites da Web no IIS, autenticação para diretórios virtuais e configuração de identidades para pools de aplicativos.
- Adicionamos uma tarefa personalizada no TFS para construir o projeto de instalação (o TFS não oferece suporte a projetos de instalação, portanto, tivemos que usar devenv.exe para construir o MSI)
- O MSI é instalado no servidor ativo (se houver uma versão anterior do MSI, ela é desinstalada primeiro)