92 votes

Échec de la construction de la tâche de déploiement Web

Scénario :

J'ai mis en place avec succès la tâche webdeploy TFS2010 pour la solution. Tout a bien fonctionné jusqu'à ce que soudainement quelque chose se passe mal dans la tâche de déploiement.

La solution a 2 projets web. Ceux-ci sont configurés pour être déployés lors de la construction et publiés sur le serveur de développement.

Quelqu'un sait-il ce qui ne va pas dans le build (information ci-dessous) ?

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.

Je peux donner plus d'informations si quelqu'un en a besoin.

1 votes

Si vous vous posez cette question plus récemment, veuillez vous reporter à la rubrique réponse la plus récente

217voto

bucktronic Points 1233

J'ai rencontré le même problème lors de la construction via TFS. Lorsque j'ai essayé d'importer manuellement le site web, j'ai obtenu une erreur plus informative : "Impossible de se connecter à l'utilisateur \WDeployConfigWriter ".

Il s'avère que lorsque vous installez web deploy, il crée deux comptes locaux WDeployConfigWriter et WDeployAdmin. Les mots de passe de ces comptes sont configurés pour expirer. Donc, réinitialisez les mots de passe sur le serveur web et réglez-les sur "never expire". Ensuite, allez dans Management Service Delegation dans IIS. Chacune des règles présentées a un champ UserName. S'il s'agit de WDeployAdmin ou WDeployConfigWriter, faites un clic droit et mettez à jour les informations d'identification avec les nouveaux mots de passe.

Une explication complète avec des captures d'écran peut être trouvée ici : http://workinghardinit.wordpress.com/2011/07/18/wdeployconfigwriter-account-issues-trouble-shooting-web-deploy-2-0-with-lessons-learned/

22 votes

Si les mots de passe n'ont pas été modifiés, vous pouvez simplement définir les comptes WDeployConfigWriter et WDeployAdmin sur "L'utilisateur ne peut pas changer de mot de passe" et "Le mot de passe n'expire jamais". Dans notre cas, "Le mot de passe du compte spécifié a expiré" figurait dans le journal de sécurité lors de l'installation d'un nouveau serveur.

2 votes

Joli. C'était le problème dans mon cas. J'ai réglé le mot de passe de l'utilisateur WDeployConfigWriter pour qu'il n'expire pas et cela a résolu le problème.

4 votes

J'ai pu trouver une erreur similaire dans l'observateur d'événements (sur Server 2012 dans Applications and Service Logs >> Microsoft Web Deploy). L'erreur apparaît dans les détails comme suit : Microsoft.Web.Delegation.DeploymentAuthorizationException: Not able to log on the user '.\WDeployConfigWriter'. ---> System.Runtime.InteropServices.COMException: The password for this account has expired.

47voto

Will Points 1

Tout ce que vous avez à faire est de réexécuter le script "AddDelegationRules.ps1" situé dans " C:\Program Fichiers \IIS\Microsoft Web Deploy V3 \Scripts\ "

Il s'agit du script qui est exécuté lors de la première installation de web deploy. Il recréera toutes les délégations manquantes, redéfinira les mots de passe de WebDeployAdmin et de WebDeployConfigWriter, et ajoutera de nouveau WebDeployAdmin au groupe Administrateurs.

Vous auriez encore besoin de configurer le mot de passe de chaque compte pour qu'il n'expire pas après avoir réexécuté le script.

0 votes

Vos conseils m'ont beaucoup aidé. J'ai trouvé et exécuté ce script "AddDelegationRules.ps1" avec "poverShell". J'utilise un serveur win 2012 r2 et VS2017.

12voto

jmazin Points 81

Nous avons eu le même problème - dans notre cas, nous n'utilisons que la fonction MSDeploy (sans TFS ). Réinitialiser le mot de passe de ces 2 comptes locaux ( WDeployConfigWriter y WDeployAdmin ) ont résolu le problème comme leur les mots de passe avaient expiré . Nous avons essayé de changer la politique de mot de passe pour qu'il n'expire jamais, mais seulement une partie du mot de passe a expiré. Administrateur local peut le faire.

2 votes

Je viens d'utiliser cette réponse pour résoudre ce problème moi-même. Il y avait cependant une étape supplémentaire pour moi... Une fois que vous avez réinitialisé les informations d'identification, vous devez aller dans IIS > Délégation des services de gestion puis sélectionnez chaque règle et appuyez sur Modifier . Si la règle utilise le WDeployConfigWriter compte, appuyez sur la touche Set... et saisissez à nouveau les nouvelles informations d'identification que vous venez de mettre à jour.

3 votes

Ce n'est vraiment qu'une demi réponse... pour empêcher les mots de passe d'expirer, ouvrez le gestionnaire de groupe local (exécutez lusrmgr.msc ), utilisateurs (dans la barre latérale), double-cliquez sur le nom du compte, et cochez "le mot de passe n'expire jamais".

0 votes

J'ai pu résoudre ce problème en décochant simplement l'option User must change password at next login et n'a pas changé physiquement les mots de passe

4voto

Exécutez cette commande lusrmgr.msc double-cliquez sur l'utilisateur et double-cliquez sur le nom du compte, et cochez "password never expires". enter image description here

enter image description here C'est fait.

0 votes

Je l'ai fait vérifier, mais j'ai un problème avec le déploiement.

0voto

Wildcat Matt Points 308

Dans mon cas, c'était une installation bâclée de Web Deploy.

Désinstaller puis réinstaller Web Deploy a réglé le problème pour moi -- Réparer n'a pas aidé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X