Briser le paquet MsBuild & amp; déployer dans des commandes MsBuild et MsDeploy distinctes
Je vais avoir quelques problèmes de rupture d'un package MsBuild+commande de déploiement en deux ordres distincts. (J'en ai besoin pour ce faire de passer des paramètres supplémentaires pour MsDeploy).
La commande qui fonctionne très bien ressemble à ceci:
msbuild "src\Solution.sln"
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://192.168.0.1:8172/MsDeploy.axd
/P:DeployIISAppPath=staging.website.com
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WmSvc
/P:CreatePackageOnPublish=True
/P:UserName=staging-deploy
/P:Password=xyz
La séparation de l'emballage de la commande ressemble à ceci:
msbuild "src\Solution.sln"
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=Package
/P:_PackageTempDir=C:\temp\web
qui fonctionne très bien. Mais alors le MsDeploy partie:
msdeploy
-verb:sync
-allowUntrusted
-usechecksum
-source:manifest=
'src\WebProject\obj\Deploy-Staging\Package\WebProject.SourceManifest.xml'
-dest:auto,ComputerName=
'https://192.168.0.1:8172/MsDeploy.axd?site=staging.website.com',
username='staging-deploy',password='xyz',authType='basic',includeAcls='false'
-enableRule:DoNotDeleteRule
échoue avec l'erreur suivante dans WmSvc.journal
wmsvc.exe Error: 0 : Attempted to perform an unauthorized operation.
setAcl/C:\temp\web (Read)
ProcessId=15784
ThreadId=31
DateTime=2011-03-30T14:57:02.4867689Z
Timestamp=3802908721815
wmsvc.exe Error: 0 : Not authorized.
Details: No rule was found that could authorize user 'staging-deploy',
provider 'setAcl', operation 'Read', path 'C:\temp\web'.
(et de plusieurs autres opérations de Lecture/Écriture)
Clairement, quelque chose ne va pas avec les chemins qu'il essaie d'accès (tel qu'il fonctionne très bien avec l'autre méthode) - je ne suis pas sûr que c'est encore d'essayer d'utiliser le iisApp ciblant correctement, et à l'instant, je ne pense pas que le web correct.config sera déployé.
source d'informationauteur James Crowley
Vous devez vous connecter pour publier un commentaire.
J'ai un fixe maintenant - je besoin d'une autre commande à l'un générées automatiquement .fichier cmd a l'aide, mais la comparaison entre les deux m'a permis de le corriger (merci @Vishal R. Joshi)
Les différences que j'ai besoin, c'était:
La réussite de commande se présente comme suit:
Espère que cela aide quelqu'un!
Ajouter une délégation de la règle sur le serveur à l'aide de inetmgr pour permettre la mise en scène, déployer pour mener à bien set-Acl opérations.
Inetmgr -> Cliquez sur le nœud de serveur -> Gestion de Délégation de Service (en Gestion) -> Cliquez sur Ajouter une règle de droit -> Choisir le modèle de l'étiquette de "Définir les Autorisations pour les Applications" -> Accepter les paramètres par défaut et cliquez sur OK.
Cela devrait vous permettre de déployer tout colis ou manifeste avec setAcl aussi longtemps que l'utilisateur que vous êtes le déploiement de que, a les autorisations pour le site que vous déployez.
Vous êtes en mesure de préciser le -setParam:nom="valeur=" drapeau lors de l'appel de la MyProject.déployer.cmd fichier qui est créé lors de la génération d'un Package à partir d'un projet web. Le cmd est un sympathique wrapper autour de msdeploy.exe, de sorte que vous n'avez pas besoin de spécifier tout le reste de la configuration par défaut.
En voici les détails: http://evolutionarydeveloper.blogspot.co.uk/2013/05/specifying-environment-variables-at.html