Estou tentando configurar a implantação automática usando msbuild.
Eu consegui ter uma chamada de sincronização msdeploy para publicar com êxito um pacote zip criado com msbuild.
No entanto, quando tento executar uma chamada de exclusão msdeploy antes da operação de sincronização, ela falha com
ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER
Existe alguma permissão ou regras adicionais de delegação do IIS que devem ser definidas em comparação com a usada para a chamada de sincronização?
O msdeploy -verb:sync
funciona corretamente:
Total changes: 676 (672 added, 0 deleted, 4 updated, 0 parameters changed, 55787329 bytes copied)
Syncing done.
Howerver o msdeploy -verb:delete
falha:
Info: Using ID '138cbadf-3449-4574-8e3f-0a3bd13fe751' for connections to the remote server.
EXEC : error Code: ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER [c:\PATH\Deploy.proj]
More Information: Could not complete an operation with the specified provider ("auto") when connecting using the Web Management Service. This can o
ccur if the server administrator has not authorized the user for this operation. auto http://go.microsoft.com/fwlink/?LinkId=178034
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER.
Como você pode ver, estou usando um arquivo proj msbuild para isso. As chamadas msdeploy são realizadas com a regra <Exec>
:
<Target Name="Publish" >
<Message Importance="High" Text="Deleting from $(PublishServer) ..." />
<!-- THIS FAILS: -->
<Exec
WorkingDirectory="$(MsDeployBinaryFolder)\"
Command=""$(MsDeployBinary)" -verb:delete -dest:auto,computerName="https://$(PublishServer):8172/msdeploy.axd?Site=$(IisAppHostName)",authType=Basic,userName=$(UserName),password='$(Password)' -allowUntrusted -disableLink:ContentExtension -disableLink:AppPoolExtension"
/>
<Message Importance="High" Text="Deletion done." />
<Message Importance="High" Text="Syncing to $(PublishServer) ..." />
<!-- THIS WORKS: -->
<Exec
WorkingDirectory="$(MsDeployBinaryFolder)\"
Command=""$(MsDeployBinary)" -verb:sync -source:package="$(ArchiveDir)\$(SiteName)\$(SiteName).zip" -dest:auto,computerName="https://$(PublishServer):8172/msdeploy.axd?Site=$(IisAppHostName)",authType=Basic,userName=$(UserName),password='$(Password)' -allowUntrusted -setParam:"IIS Web Application Name"="$(IisAppHostName)/$(IisSiteName)""
/>
<Message Importance="High" Text="Syncing done." />
</Target>
Alguma idéia de porque a sincronização pode adicionar e alterar arquivos enquanto a exclusão falha?