web-dev-qa-db-fra.com

WebDeploy (401) Erreur non autorisée

Je reçois une erreur non autorisée de MsDeploy à l'aide de l'authentification NTLM lorsque je tente de déployer à distance une application à l'aide d'un utilisateur Windows qui n'est pas un administrateur local sur le serveur de destination. J'ai des règles d'installation dans la délégation de service de gestion sur la boîte de destination avec tous les fournisseurs cochés. En vertu de cette règle, j'ai ajouté 2 utilisateurs dotés d'autorisations d'autorisation ('*' et mon utilisateur Windows effectuant le déploiement à distance). De plus, j'ai donné l'autorisation d'utilisateur Windows sur le site que je tente de déployer. Si je fais de l'utilisateur Windows un administrateur local dans la zone de destination et que je définis "Autoriser les administrateurs à contourner les règles", le déploiement fonctionne correctement. Si l'utilisateur Windows n'est pas un administrateur local, l'erreur suivante apparaît:

Échec de la tâche de déploiement Web. (L'agent distant (URL http: // xxxxxxxx/MSDEPLOYAGENTSERVICE ) n'a pas pu être contacté. Assurez-vous que le service d'agent distant est installé et démarré sur l'ordinateur cible.) Assurez-vous que le nom du site, utilisateur nom et mot de passe sont corrects. Si le problème n'est pas résolu, veuillez contacter votre administrateur local ou votre administrateur de serveur. Détails de l'erreur: L'agent distant (URL http: // xxxxx/MSDEPLOYAGENTSERVICE ) n'a pas pu être contacté. Assurez-vous que le service d'agent distant est installé et démarré sur l'ordinateur cible. Une réponse non prise en charge a été reçue. L'en-tête de réponse 'MSDeploy.Response' était 'V1' mais 'v1' était attendu. Le serveur distant a renvoyé une erreur: (401) non autorisé. dans Microsoft.Web.Publishing.targets (3588, 5)

27
cfbarbero

Si vous configurez la délégation sur "Autoriser les administrateurs à contourner les règles" et que la commande msdeploy aboutit, vous passez par WMSvc et vous la laissez passer. Autrement, d'après la réponse, il semblerait que WMSvc vous rejette et que vous tombiez sur l'agent Web Deloy. 

Définissez/ajoutez la valeur de registre suivante à la clé de registre WMSvc:

reg add HKLM\Software\Microsoft\WebManagement\Server /v WindowsAuthenticationEnabled /t REG_DWORD /d 1

Recycler WMSvc:

net stop wmsvc & net start wmsvc

Réessayer. Si cela ne réussit pas, pouvez-vous publier votre ligne de commande msdeploy. 

49
kateroh

Nous avons déployé une machine dans le cadre de notre processus de construction. Sans raison évidente, les déploiements ont cessé de fonctionner et nous ne pouvions plus accéder à distance à aucun des partages administratifs (C $, ADMIN $, etc.). Nous avons trouvé un correctif pour les partages administratifs, qui corrigeait également les problèmes de déploiement.

Nous avons suivi l'étape de cet article de la Base de connaissances pour réactiver les partages administratifs (toujours aucune idée de la raison pour laquelle ils ont soudainement cessé de fonctionner).

http://support.Microsoft.com/kb/947232

Après cela, msdeploy a tout à coup recommencé à fonctionner. Je ne pensais pas que msdeploy utilisait des partages administratifs. Je ne suis même pas sûr que les deux soient liés du tout, mais je pensais le jeter au cas où cela résoudrait le problème de quelqu'un d'autre.

5
Jon Turner

J'ai finalement réussi à utiliser ma construction et mon déploiement automatisés avec NTLM. Je voulais juste résumer ce qu’il a fallu pour que cela se concrétise au cas où cela serait utile. Ceci est avec IIS 7.5.

  1. Définissez le paramètre de registre et redémarrez le service de gestion Web (WMSVC):

    ajouter reg HKLM\Software\Microsoft\WebManagement\Server/v WindowsAuthenticationEnabled/t REG_DWORD/d 1

  2. Donnez à l'utilisateur qui exécute l'autorisation de service de construction TFS dans le répertoire du site Web.

  3. Voici les arguments MSBuild que j'ai utilisés. Remplacez les différents noms par vos noms. J'utilisais DEV et Any CPU. J'avais également besoin d'autoriser un certificat non approuvé.

    / m/p: PublishProfile = DEV/p: Configuration = DEV/p: Plate-forme = "Tout CPU"/p: DeployOnBuild = true/p: AllowUntrustedCertificate = true/p: authType = NTLM

  4. Dans IIS Manager avec le site Web de destination sélectionné, ouvrez les autorisations IIS Manager et autorisez l'utilisateur à exécuter le service de génération TFS. 

La recherche a été très utile pour diagnostiquer les problèmes. Vous pouvez activer le traçage dans Délégation du service de gestion dans IIS Manager. Au départ, je ne pouvais pas voir la délégation de service de gestion dans IIS Manager. Pour pouvoir montrer, je devais «changer» Web Deploy à partir de Add Programs afin que la délégation du service de gestion soit installée. On aurait dit qu’il avait été installé, mais j’ai réinitialisé le menu déroulant pour l’installer sur mon ordinateur et terminer l’installation. Ensuite, il est apparu dans IIS Manager.

4
EricksonG

Je ne suis pas sûr de la cause exacte, mais je pourrais peut-être vous aider à trouver votre chemin.

WebDeploy utilise deux points d'entrée en fonction de la configuration du serveur distant, qu'il s'agisse de l'exécution de IIS6 ou de IIS7. 

IIS 7 utilise le gestionnaire de déploiement IIS , qui est géré par le service de gestion Web et permet à msdeploy de provisionner directement IIS. Tous les paramètres "délégation du service de gestion", etc. sont liés à cette configuration.

Toutefois, IIS 6 ne disposant pas du service de gestion Web, le gestionnaire ne fonctionnera pas. Pour les cibles IIS6, un service appelé MS Deploy Agent Service est utilisé.

Ce qui est étrange, c'est que votre configuration suggère que vous utilisez IIS 7, car vous avez été en mesure de définir les paramètres de délégation, etc. presque comme si il pensait que c'était IIS 6. Le service nécessite un accès administrateur, c'est pourquoi vous obtenez cette erreur.

En fonction de l'erreur, il semble que vous appelez cela à partir de MSbuild, probablement directement à partir de Visual Studio. Vous voudrez peut-être examiner les paramètres qui vous ont été définis et voir s’il ya quoi que ce soit causant ce chemin et/ou cette sélection de serveur.

Assurez-vous également que le service de gestion Web est en cours d'exécution sur la machine distante. 

En gros, vous voulez le voir faire des appels de déploiement vers une autre URL, http: // <> /msdeploy.axd (si je me souviens bien) pour appeler correctement le gestionnaire.

3
Taylor Bird

Cela a pris beaucoup trop d’heures de mon temps. Web Deploy fonctionnait déjà pour mes autres sites. J'ai décidé d'ajouter un nouveau site Web à mon serveur et j'ai essayé de le déployer (mais j'ai laissé accidentellement le même nom " Site/application " en raison d'une erreur de copier/coller trop zélée). La publication a réussi, mais lorsque j'ai réalisé que je publiais sur le mauvais site (au lieu du nouveau site), j'ai changé le nom du site et essayé de la redéployer, mais j'ai continué à avoir cette erreur. J'ai tout essayé à la fin IIS. Enfin, je viens de fermer complètement mon instance Visual Studio 2010. Je l'ai ouvert, j'ai essayé à nouveau de publier et cela a fonctionné!

En cas de doute, demandez-vous: "Avez-vous essayé de l'éteindre et de le rallumer?"
Je réalise que ce conseil n’aidera pas tout le monde avec cette erreur ambiguë - quelques-uns seulement.

2
MikeTeeVee

Si votre utilisateur est un administrateur, mais vous obtenez toujours 

ERROR_USER_IS_NOT_ADMIN

assurez-vous que vous utilisez le nom d'utilisateur complet. 

MyMachineName\MyWebDeployUser

1
Dann

Hier, j’ai pu déployer très bien, aujourd’hui, ce message d’erreur était identique. Après une heure ou deux de dépannage, j'ai fini par supprimer le domaine de mon nom d'utilisateur. Auparavant, il s'agissait de DOMAIN\nom d'utilisateur, je l'ai remplacé par simplement [nom d'utilisateur] et voilà, il a recommencé à fonctionner. Je sais que ce n'est pas une bonne réponse, mais peut-être que cela aidera quelqu'un d'autre qui la traverse.

1
Ken Johnson

Je pense que votre problème est vraiment simple ... J'ai eu le même problème que vous ... 

En fait, le problème était que les services réseau étaient le compte de connexion dans le service d'agent Web Deploy et que ce compte ne dispose pas des autorisations suffisantes pour modifier ou lire les fichiers IIS ...

Pour résoudre votre problème, procédez comme suit:

Ouvrez les services Painel (services.msc)
Recherchez le service d'agent Web Deploy et Double-cliquez sur pour ouvrir les propriétés du service d'agent Web Deploy ... Compte administrateur ...

J'espère t'aider

0
Ricardo Almeida

Web Deploy a cessé de fonctionner pour nous hier lors de l'utilisation de l'identité de l'utilisateur Windows actuel (avec des informations d'identification explicites) après l'installation des correctifs pour MS15-025 et MS15-027 sur l'un de nos contrôleurs de domaine en cours d'exécution Windows Server 2003.

Nous avons vérifié toutes les recommandations pour Web Deploy et n'avons pas pu résoudre l'erreur HTTP 401.2.

Désormais, Microsoft a réédité les correctifs des deux bulletins spécifiquement pour Windows Server 2003 (KB3033395-v2 et KB3002657-v2). Après avoir installé les correctifs mis à jour et démarré le contrôleur de domaine, cela a fonctionné immédiatement. Nous n'avons même pas eu à redémarrer un service sur le serveur Web. 

Il n'y avait aucune entrée du journal des événements indiquant cela, cela est devenu évident à cause de la relation temporelle.

0
realMarkusSchmidt

Il existe une autre possibilité: votre compte a été verrouillé en raison d’un nombre trop élevé de tentatives de déploiement avec déploiement Web. Réinitialisez votre compte ou demandez à votre administrateur système de le faire pour vous. Très frustrant.

0
saille