Estoy tratando de ejecutar ProjectName.deply.cmd que MSBuild genera cuando se pasa el parámetro /p:DeployOnBuild=True
. Uno de los argumentos "ComputerName" se pasará como https://WebServer01:8172/MSDeploy.axd?SiteName=MySiteName
. Mi línea de comandos seríaCómo pasar el nombre del sitio en ProjectName.deploy.cmd
ProjectName.deploy.cmd /Y /M:https://WebServer01:8172/MSDeploy.axd?Site=MySiteName
-AllowUntrusted /U:DeployUserName /P:Password /A:Basic
Devuelve
Error: Unrecognized argument 'MySiteName'. All arguments must begin with "-".
el comando real que se ejecuta es
"C:\Program Files\IIS\Microsoft Web Deploy V3\\msdeploy.exe"
-source:package='Y:\ProjectName.zip'
-dest:auto,computerName='https://WebServer01:8172/MSDeploy.axd?Site',userName='DeployUserName',password='Password',authtype='Basic',includeAcls='False'
-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"Y:\ProjectName.SetParameters.xml"
MySiteName
-AllowUntrusted
en cuenta que el argumento a/M https://WebServer01:8172/MSDeploy.axd?Site=MySiteName
se divide en dos argumentos y por lo tanto creando computerName='https://WebServer01:8172/MSDeploy.axd?Site'
yy argumento adicional MySiteName
.
He pasado por Running a deployment package with quoted parameters fails in Visual Studio 2010 Service Pack 1 pero eso solo se ocupa de ArgMsDeployAdditionalFlags
y no los argumentos, p. /M:ComputerName
.
Cuando el nombre del sitio no se pasa, no puedo hacer la multa despliegue con un usuario que tenía derechos de administrador en el servidor, pero cuando se utiliza un DeployUserName usuario IIS estándar consigo 401
ProjectName.deploy.cmd /Y /M:https://WebServer01:8172/MSDeploy.axd
-AllowUntrusted /U:DeployUserName /P:Password /A:Basic
el servidor devuelve 401
Error Code: ERROR_USER_UNAUTHORIZED
More Information: Connected to the remote computer ("WebServer01") using the Web
Management Service, but could not authorize. Make sure that you are using the
correct user name and password, that the site you are connecting to exists, and
that the credentials represent a user who has permissions to access the site.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED.
Error: The remote server returned an error: (401) Unauthorized.
los permisos para ese usuario están bien como la publicación de VS2012
con MSDeploy
perfil con ese usuario funciona bien. También puedo construir el comando msdeploy.exe
y eso también funciona bien. Tengo que usar el ProjectName.deploy.cmd
, ya que se está produciendo como parte de Team Build
desde TFS2010
.
Eso fue un error tipográfico en la pregunta. Lo he arreglado El problema no es el argumento en sí. Es la forma = se maneja mediante el símbolo del sistema y luego se organiza en el script deploy.cmd para pasarlo posteriormente a msdeploy.exe. –
@amit_g - Ver mi respuesta actualizada. –
Estoy seguro de que intenté esto junto con otras variaciones para escapar de = pero ese día ninguno de ellos funcionó :(Hoy comencé con esto y funcionó en el primer intento. Hubo algunos otros problemas relacionados con la seguridad, pero esos fueron directos adelante. Con este funcionamiento no necesitaré privilegios de administrador para el usuario de implementación (que es lo que quería). Gracias @Richard por su ayuda. –