A construção da tarefa de implantação da Web falhou

86

Cenário:

Configurei com êxito a tarefa webdeploy do TFS2010 para solução. Tudo funcionou bem até que, de repente, algo deu errado na tarefa de implantação.

A solução tem 2 projetos da web ... esses são configurados para implantar no build e publicá-lo no dev-server.

Alguém sabe o que há de errado na construção (informações abaixo)?

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
(3847): Web deployment task failed.
((4.8.2011 11:01:10) An error occurred when the request was processed on the remote computer.)
(4.8.2011 11:01:10) An error occurred when the request was processed on the remote computer. Unable to perform the operation. Please contact your server administrator to check authorization and delegation settings.

Posso dar mais informações se alguém precisar.

SAV
fonte
1
Se você chegou a esta pergunta mais recentemente, por favor, veja a resposta mais recente
Sethi

Respostas:

207

Eu encontrei o mesmo problema ao compilar via TFS. Quando tentei importar manualmente o site, recebi um erro mais informativo: "não foi possível fazer logon no usuário \ WDeployConfigWriter".

Acontece que, quando você instala o web deploy, ele configura duas contas locais WDeployConfigWriter e WDeployAdmin. As senhas dessas contas estão definidas para expirar. Portanto, redefina as senhas no servidor da web e defina como "nunca expira". Em seguida, vá para Delegação de serviço de gerenciamento no IIS. Cada uma das regras apresentadas possui um campo UserName. Onde está WDeployAdmin ou WDeployConfigWriter, clique com o botão direito e atualize as credenciais para as novas senhas.

Uma explicação completa com capturas de tela pode ser encontrada aqui: http://workinghardinit.wordpress.com/2011/07/18/wdeployconfigwriter-account-issues-trouble-shooting-web-deploy-2-0-with-lessons-learned/

Bucktronic
fonte
21
Se as senhas não foram alteradas, você pode simplesmente definir as contas WDeployConfigWriter e WDeployAdmin para "O usuário não pode alterar a senha" e "A senha nunca expira". Em nosso caso, "A senha da conta especificada expirou." estava no log de segurança em uma nova instalação de servidor.
GoClimbColorado
2
Agradável. Esse foi o problema no meu caso. Defini a senha do usuário WDeployConfigWriter para não expirar e isso resolveu o problema.
Stan o DBA de
2
Consegui encontrar um erro semelhante no visualizador de eventos (no Server 2012 em Aplicativos e Logs de serviço >> Microsoft Web Deploy). O erro é mostrado nos detalhes como:Microsoft.Web.Delegation.DeploymentAuthorizationException: Not able to log on the user '.\WDeployConfigWriter'. ---> System.Runtime.InteropServices.COMException: The password for this account has expired.
Jon Egerton
Ainda em fevereiro de 2016, encontrei este problema estranho no servidor Windows 2008R2 e sua solução funcionou para mim.
Ehsan Mirsaeedi
2
Posso confirmar que você NÃO precisa alterar a senha. Definir "a senha nunca expira" é suficiente para corrigir o problema sem as etapas extras, conforme o comentário de
@GoClimbColorado
40

Tudo o que você precisa fazer é executar novamente o script "AddDelegationRules.ps1" localizado em "C: \ Arquivos de programas \ IIS \ Microsoft Web Deploy V3 \ Scripts \"

Este é o script que é executado quando o web deploy é instalado pela primeira vez. Ele recriará as delegações ausentes, redefinirá as senhas para WebDeployAdmin e WebDeployConfigWriter e adicionará WebDeployAdmin de volta ao grupo Administradores.

Você ainda precisaria definir a senha em cada conta para não expirar após a nova execução do script.

Vai
fonte
Seu conselho me ajudou muito. Eu encontrei e executei este script "AddDelegationRules.ps1" com "poverShell". Estou usando o servidor Win 2012 r2 e VS2017.
Roberto Gata
12

Tivemos o mesmo problema - no nosso caso, estamos usando apenas MSDeploy (sem TFS ). A redefinição da senha para essas 2 contas locais ( WDeployConfigWriter e WDeployAdmin ) resolveu o problema, pois suas senhas haviam expirado . Tentamos alterar a política de senha para nunca expirar, mas apenas um administrador local pode fazer isso.

Jmazin
fonte
2
Só usei essa resposta para resolver isso sozinho. No entanto, havia mais uma etapa para mim ... Depois de redefinir as credenciais, você precisa ir para IIS> Delegação de serviços de gerenciamento , selecionar cada regra e pressionar Editar . Se a regra usar a conta WDeployConfigWriter , pressione o botão Definir ... e insira novamente as novas credenciais que você acabou de atualizar.
EvilDr
3
Esta é realmente apenas uma meia resposta ... para evitar que as senhas expirem, abra o gerenciador de grupo local (execute lusrmgr.msc), usuários (na barra lateral), clique duas vezes no nome da conta e marque "a senha nunca expira".
Kat de
Consegui resolver isso simplesmente desmarcando User must change password at next logine não alterando fisicamente as senhas
Chris Schaller
3

execute este comando lusrmgr.msc clique duas vezes no usuário e clique duas vezes no nome da conta e marque "a senha nunca expira". insira a descrição da imagem aqui

insira a descrição da imagem aqui Feito.

Iyeritufu precioso
fonte
Eu verifiquei, mas tenho problemas com a implantação
Piotr Piątkiewicz
Isso funcionou para mim! Obrigado!
GisMofx