¿Alguien está utilizando con éxito MsDeploy para implementar servicios de Windows con un preSync runCommand? Lo tengo trabajando usando una cuenta de administrador, pero no puedo hacerlo funcionar en una cuenta de usuario estándar. Lamentablemente, no puedo usar la autenticación integrada (estamos implementando en un cuadro externo), y la idea de que nuestra contraseña de administrador se encuentre en texto sin formato en los registros de nuestro servidor de compilación no me hace sentir muy cómodo. Para el caso, tampoco lo hace ninguna credencial de usuario, pero no puedo encontrar una forma de evitarlo.Uso de MsDeploy para implementar servicios de Windows con el comando preSync
El comando que estoy usando es la siguiente:
"tools/deploy/msdeploy.exe" -verb:sync
-preSync:runCommand="tools\Deploy\PreSyncCommand.cmd",waitInterval=30000
-source:dirPath="C:\BuiltSourcePath"
-dest:computerName=https://server:8172/msdeploy.axd?site=dummysitename,userName=service-deploy,password=service-deploy-pass,authType=basic,dirPath="C:\DeployPath\"
-allowUntrusted
con las normas establecidas en IIS para el sitio ficticio para permitir la autenticación de la cuenta de servicio de las ventanas de implementar, con contentPath y permisos runcommand (para el momento establecido en C: \ ya que no está del todo claro si esto debe establecerse en la ruta temporal a la que MsDeploy transmite, o la ruta de implementación?). La cuenta de despliegue del servicio también tiene control total del directorio de destino. Me sale el siguiente vuelta:
Performing '-preSync'...
Info: Using ID '7a7d34a1-b5d8-49f1-960a-31c9cf825868' for connections to the remote server.
Info: Using ID '4d0b910c-aca4-4640-84bd-3597d22d99d1' for connections to the remote server.
Info: Updating runCommand (C:\TeamCity\buildAgent\work\aec989676b349656\tools\De
ploy\PreSyncCommand.cmd).
Warning: Access is denied.
Warning: The process 'C:\Windows\system32\cmd.exe' (command line '/c "C:\Windows
\ServiceProfiles\LocalService\AppData\Local\Temp\giz2t0kb.0ay.cmd"') exited with
code '0x1'.
Esto ocurre incluso si el contenido de PreSyncCommand.cmd está en blanco. El mismo comando funciona bien si paso las credenciales de administrador. Intenté usar ProcessMonitor para verificar si se está negando el acceso a algo, pero no puedo ver ninguno, así que supongo que sigue siendo una regla de autenticación de MsDeploy. No hay nada en WmSvc.log (la depuración está habilitada), ni en el registro de eventos.
¿Alguna idea? ¡Gracias!
he publicado una entrada de blog sobre cómo hacer esto: http://www.jamescrowley.co.uk/2011/04/28/deploying-windows- services-using-msdeploy/ –
La entrada del blog publicada por James Crowley arriba se ha movido ahora [aquí] (http://www.jamescrowley.co.uk/2011/09/05/deploying-windows-services-using- msdeploy /) –