msdeploy (Web Deploy) à défaut avec 401 auth questions
Je vais essayer d'obtenir msdeploy
installé et configuré. J'ai installé le service distant sur le serveur web, mais tous mes essais me donnent un 401 unauthorised error
. Le serveur Windows 2008 R2.
Je suis en essais très simple msdeploy commande:
msdeploy -verb:dump -source:contentPath=c:\inetpub\wwwroot\MyApp,computerName=<IP HERE>,userName=Domain\msdeploy,password=MyPassword
Et l'erreur:
Error: Object of type 'contentPath' and path 'c:\inetpub\wwwroot\MonApp' cannot be created.
Error: Remote agent (URL http://<IP HERE>/MSDEPLOYAGENTSERVICE) could not be contacted. Make sure the remote agent service is installed and started on the target computer.
Error: An unsupported response was received. The response header 'MSDeploy.Response' was '' but 'v1' was expected.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.
J'ai créé un utilisateur appelé msdeploy, et je l'ai ajouté au groupe administrateurs local sur le serveur.
J'ai vérifié:
- Que le service est installé correctement et j'ai commencé il
- Diverses combinaisons de ne pas utiliser le nom de domaine de l'utilisateur, et l'ajout de authType=Base
- Toutes les autorisations nécessaires à ce dossier pour tout le monde
- Dans IIS autoriser les connexions à distance
- De la Gestion de Délégation de Service règles pour mon "msdeploy" utilisateur pour contentPath et iisApp (vaguement basé sur la lecture cette)
- Essayé avec un autre compte admin je utiliser pour de la RDC pour le serveur...
- Essayé avec différentes contentPaths et les différents msdeploy commandes
- Créé un compte spécifique, et a ajouté que compte le IIS_Users. A ajouté que l'utilisateur de mon site web "Gestionnaire des services IIS Autorisations", et le programme d'installation de "Gestion de Délégation de Service" pour tous les fournisseurs.
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que vous avez configuré votre serveur correctement pour WebDeploy 2.0 par cet article:
Remarque: MS ont publié une actualisation de déploiement Web 2.0 et le lien d'origine n'est pas vraiment plus valide. J'ai mis à jour mais je pense que ça va être une cible mouvante au fil du temps.
Vous aussi besoin d'installer le déploiement Web 2.0 sur le développement de votre/construire/CI de la machine.
Si vous êtes toujours à l'aide de 1.0 alors je vous recommande de mettre à niveau, il y a quelques énormes améliorations dans la version 2.0.
À l'aide de Visual Studio 2010 Fonctionnalité de publication:
Visual Studio, vous pouvez publier un site par un clic droit sur le site et sélectionnez "Publier". Ceci fait apparaître le dialogue suivant:
Il ya un couple de gotcha avec Visual Studio 2010 et WebDeploy 2.0. La première est que VS2010 n'est pas WebDeploy/MSDeploy 2.0 conscient. Donc, si vous essayez de publier un message d'erreur tel que le suivant:
Vous verrez également l'erreur suivante dans le suivi des demandes ayant Échoué pour le web de gestion de service sur le serveur dans
C:\inetpub\logs\wmsvc\TracingLogFiles\W3SVC1
en supposant que vous avez cette allumé:La lettre du lecteur de varier en fonction de lecteur de votre site IIS est situé sur.
Hors de la boîte, le GUI mécanisme de publication par défaut à l'aide de la version incorrecte de MSDeploy (1.0). Nous voulons parler de la VS2010 pour utiliser MSDeploy 2.0. Vous pouvez le faire en modifiant Visual Studio 2010
devenv.exe.config
fichier qui se trouve dans (en supposant que vous avez un défautc:\
lecteur install):Pour les systèmes 64 bits:
c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
Pour les systèmes 32 bit:
c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
Ouvrir
devenv.exe.config
dans vos favoris éditeur XML (j'ai juste utilisé Visual Studio 2010), et copiez le code xml suivant:Ajouter à la
/configuration/runtime/assemblyBinding
section:Une fois que vous avez fait cela, fermez toutes les instances de Visual Studio 2010, afin de permettre que cette modification prenne effet. Redémarrez VS2010, ouvrez un projet web et ensuite essayer de le publier à nouveau. Cette fois, il devrait être couronnée de succès.
Publication à l'aide d'une compilation du Package:
Visual Studio peut produire une accumulation qui peut être exécuté depuis la ligne de commande. Il est généré à l'aide de
Project -> Build Deployment Package
. Pratique pour l'intégration continue (ci-après, l'emballage peut également être généré à l'aide de msbuild avec le/t:Package
switch).Le dossier de sortie pour l'emballage en général par défaut à
obj\Package
.Malheureusement Visual Studio 2010 se présente un peu de mal et génère un msdeploy wrapper script batch cibler 1.0 et de mieux les cibler le déploiement sur le serveur plutôt que de niveau des sites.
Il n'y a pas de solution miracle pour ce d'autre que de créer votre propre msdeploy.exe ligne de commande. J'ai divisé ce sur plusieurs lignes pour les rendre un peu plus lisible.:
La première chose à noter est le chemin d'accès à
msdeploy.exe
. Visual Studio génère un chemin d'accès à la version 1.0. J'ai changé pour utiliser 2.0.Notable des paramètres:
-source:archiveDir=
dit msdeploy nous sommes le déploiement d'un package et fournit l'emplacement localcomputerName='https://yoursite.com:8172/msdeploy.axd?site=yoursitename'
- ce dit MSDEPLOY pour le déployer sur un site spécifique sur IIS7.yoursitename
doit correspondre exactement au nom du site dans IIS.userName
etpassword
est le nom du gestionnaire délégué de l'utilisateur pour le site. C'est configurée à l'aide du "Gestionnaire des services internet" Autorisations de fonctionnalité au niveau du site. Le compte doit être un compte d'utilisateur Windows local.-authtype='basic'
- ce les forces de l'authentification de base, autrement, l'authentification NTLM est tentée.-allowuntrusted
- ce qui ignore tout de certificat SSL erreurs si vous utilisez le haut-auto-signé le protocole SSL cert.Si vous utilisez cette ligne de commande, alors vous devriez être en mesure de déployer à distance à un serveur IIS7 avec succès.
De Publication De Contenu Brut:
Parfois, nous voulons juste de publier un contenu statique (ou peut-être même un Classique de l'ASP ou PHP site) directement à partir d'un dossier local. Nous pouvons faire cela en utilisant les suivantes
msdeploy.exe
ligne de commande:De nouveau les mêmes règles s'appliquent comme avant pour
-dest:contentPath
etcomputerName
.Je crois que le MSDeploy version les problèmes seront résolus dans le service pack 1 (dont je n'ai pas eu la chance de voir encore).
Une dernière VS2010 Gotcha:
Lors de la publication à l'aide de Visual Studio 2010, le "Publier" construire paquet provoque l'ACL du site anonyme du compte à modifier pour Lire que pour tous les fichiers et dossiers à l'exception de la
App_Data
dossier qui est changé à Lire et à Écrire.Cela peut être contourné en ajoutant le paramètre suivant à la
.csproj
fichier sous chaque<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
:Ou si vous utilisez msbuild:
J'ai trouvé utile de pépite à partir d'ici:
Pour moi, l'édition travaillé dans Visual Studio, mais cela n'a pas fonctionné quand j'ai couru le
.deploy.cmd
script.Par la mise en
<UseMsdeployExe>true</UseMsdeployExe>
dans votre.csproj
, vous pouvez forcer la VS à utiliser msdeploy.exe au lieu d'une tâche MSBuild. Puis en tournant le niveau d'enregistrement (Outils > Options > les Projets et les Solutions > Build et Run > projet MSBuild la sortie de la construction de verbosité) vous pouvez voir la ligne de commande que VS utilise.Les problèmes avec mon
.deploy.cmd
étaient:?site=<SITENAME>
dans lecomputerName
.AuthType='Basic'
dans le-dest:
paramètre.Nous avons été confronté à un problème similaire à la vôtre.
Pour cela, vous avez besoin pour démarrer de la télécommande de service de l'agent dans les services.
Nous avons utilisé le nom de l'ordinateur parce que l'adresse IP a été de donner une erreur. Donc, essayez d'utiliser le pc, nom d'utilisateur et mot de passe.
À la fin, je n'ai jamais fait suss ce que les autorisations qu'il me manquait avec mon déployer compte d'utilisateur, mais a constaté que, si j'ai utilisé la machine compte admin, que le déploiement de réussite. Pour l'instant, je suis en utilisant le compte admin pour faire le déploiement.
Bravo à Kev pour le fantastique et instructif résumé de la configuration de ms déployer 2 🙂
Pour ce que ça vaut. La publication a travaillé pour moi et puis un jour j'ai eu ce même problème (401 non autorisé d'erreur) de Redémarrer VS2012 résolu le problème. Tiens je l'avais essayé avant d'essayer toutes les autres solutions.