A alteração do caminho físico no IIS por meio do appcmd não está ativada

8

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 ...

    
por jishi 04.04.2013 / 14:55

2 respostas

0

A alteração do caminho físico do Gerenciador do IIS funciona corretamente e imediatamente?

Você pode querer tentar o seguinte comando. Diferentemente, a sintaxe deve ter o mesmo resultado, mas talvez funcione um pouco diferente internamente, fazendo com que o IIS capte as alterações (melhor):

C:\Windows\System32\inetsrv\appcmd.exe set app "www.site.com/" -[path='/'].physicalPath:"SITE_REV1\Site"

    
por 12.04.2013 / 23:01
0

Uma reciclagem de pool de aplicativos deve ser suficiente por site. Estes são processos independentes. Com frequência, artigos e processos promovem o uso do iisreset. Está parando / iniciando o pool de aplicativos para o site uma opção? Esta é uma solução de servidor único e você está tentando minimizar o tempo de inatividade do site? Existe uma opção para desativar a reciclagem nas alterações de configuração. Então você pode reciclar manualmente. Quando o problema acontece, o que é listado no applicationHost.config?

    
por 14.04.2013 / 12:00