Quais são as permissões para a conta de usuário que está executando o script.
Suponho que você seja um administrador, mas a conta de tempo de execução do script também é uma conta de nível de administrador?
Verifique se ....
Eu cocei a minha cabeça nisso. Por favor, ajude-me a parar de arranhar.
Temos uma solução manual para um problema de site que estamos enfrentando. A solução alternativa sempre funciona quando executamos as etapas manualmente, mas a execução de um script que executa as mesmas etapas às vezes funciona, mas geralmente não funciona. Minha pergunta: Por que haveria uma diferença entre executar as etapas manualmente e executá-las sob o script?
As etapas manuais são:
Como eu disse, isso sempre traz o site com funcionalidade completa. Isso deve ser roteirizado, certo?
Então eu escrevo um script em lote que basicamente faz isso:
%windir%\system32\inetsrv\appcmd.exe stop site nameOfSite
%windir%\system32\inetsrv\appcmd.exe recycle apppool nameOfAppPool
curl...(call web method with headers and parameters identical to what IE does)
%windir%\system32\inetsrv\appcmd.exe start site nameOfSite
A chamada curl
parece idêntica no Fiddler ao uso do IE para fazer a chamada. Além disso, substituí a chamada curl
por uma pausa, para que o script me dê a chance de usar o IE para chamar o método da web. Então, tenho certeza que não é essa linha.
Eu coloquei atrasos entre as etapas.
Eu tentei iniciar / parar o appPool (em vez de reciclar).
Eu tentei fazer a mesma coisa com o Python:
subprocess.check_output([params to call appcmd], shell=True)
Nenhuma dessas tentativas altera o comportamento:
Quando o script falha, simplesmente executar novamente o script nunca funciona. Eu tenho que executar as etapas manualmente, então tudo está bem.
Isso não faz sentido para mim. Faz para você? Existe uma alternativa para appcmd
que mais se aproxima do que o IIS faz ao iniciar / parar / reciclar? O que estou fazendo errado?
Quais são as permissões para a conta de usuário que está executando o script.
Suponho que você seja um administrador, mas a conta de tempo de execução do script também é uma conta de nível de administrador?
Verifique se ....