Encontramos um problema no IIS 7.5 em que temos um sistema de implementação simples, que consiste no seguinte:
Crie um arquivo zip de nova webroot, consistindo de três pastas:
Api
Site
Manager
Isso é descompactado em uma nova pasta (digamos que chamamos de "SITE_REV1") e contém um script que invoca o seguinte (um para cada webroot):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
Isso geralmente funciona em 9/10 vezes. Em alguns casos, a raiz da Web parece estar atualizada corretamente (se eu inspecionar as configurações básicas no Gerenciador do IIS, o caminho parece correto), mas o site em execução na verdade é apontado para o local antigo. A única maneira que conseguimos "consertar" é executar uma redefinição do IIS. Não é suficiente reciclar o pool de aplicativos em questão.
Às vezes parece ser necessário fazer uma reinicialização, mas não tenho 100% de certeza de que é preciso (nem sempre foi eu mesmo que estava resolvendo o problema).
Eu reescrevi o script usando Powershell e o módulo Web-Administration, esperando que houvesse uma falha no appcmd, mas o mesmo problema ocorre.
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
Alguém já experimentou algo assim? Alguém tem uma pista sobre o que está acontecendo e o que eu posso tentar fazer para evitar esse problema? Fazer uma redefinição do IIS não é realmente uma boa opção para nós, porque isso afetaria todos os sites no servidor toda vez que tentarmos implantar as alterações em um único site.
EDIT: Identificamos que um início / parada do site (NÃO o pool de aplicativos) no Gerenciador do IIS resolve o caminho físico errôneo, mas se eu parar o site usando o appcmd, alterar o caminho físico e, em seguida, iniciá-lo, ainda sofrem com os mesmos problemas. Eu estou em branco ...