Tengo algunos problemas al dividir un paquete MsBuild + comando de implementación en dos comandos separados. (Necesito hacer esto para pasar parámetros adicionales a MsDeploy).Rompiendo el paquete MsBuild y despliéguelo en comandos separados de MsBuild y MsDeploy
El comando que funciona se ve bien como esto:
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
El comando envases separados se ve así:
msbuild "src\Solution.sln"
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=Package
/P:_PackageTempDir=C:\temp\web
que funciona muy bien. Pero entonces la porción MSDeploy:
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
falla, con el siguiente error en WmSvc.log
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'.
(y varios más operaciones de lectura/escritura)
algo va mal con la claridad caminos a los que está intentando acceder (ya que funciona bien con el otro método): no estoy seguro de que siquiera intente utilizar la orientación de iisApp correctamente, y en este momento tampoco creo que se implemente el web.config correcto.
James, este es el comando msdeploy generado por myproj.deploy.cmd archivo o es hecho a mano? Gracias Vishal R. Joshi | http://vishalrjoshi.com | http://twitter.com/vishalrjoshi –
Hola Vishal, no del todo - el problema con el comando deploy.cmd es que: Necesito establecer la autenticación básica, y tuve que agregar? site = staging.webserver como un parámetro en el el nombre de la computadora objetivo, ya que el usuario no tiene permiso para acceder a todo IIS. Dicho esto, he logrado que esto funcione ahora - Resulta que debería haber estado usando source: package en lugar de source: manifest (creo que estaba intentando para crear un paquete utilizando la definición del manifiesto en el servidor de destino en lugar de localmente, mi propia incomprensión de cómo funcionaría). –