msbuild - studio - publicar sitio web iis windows server 2012
MSDeploy no se implementa en un servidor remoto utilizando MSBuild y Visual Studio 2010 (3)
Después de muchas rondas de cambiar los parámetros, pude encontrar una solución y hacer que la compilación se implementara con éxito. Los parámetros que terminé usando fueron:
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MSDeployPublishMethod=**RemoteAgent**
/p:MsDeployServiceUrl=http://my-server-name
/p:username=myusername
/p:password=mypassword
Parece que al usar InProc
para MSDeployPublishMethod
MSBuild ignora MsDeployServiceUrl y siempre intenta implementarlo en el servidor local. Lo cambié a RemoteAgent
y se implementó con éxito. Noté que el archivo del paquete ya no está en la carpeta MyWebApplication_Package , pero eso no es un gran problema para mí.
Actualmente estoy ejecutando Visual Studio Team System 2010 RC y estoy tratando de obtener la configuración del Servicio de compilación para construir mi solución e implementar 3 aplicaciones web en ella. He creado una configuración de compilación personalizada llamada Integración y he configurado el "Nombre del sitio web / aplicación de IIS para usar en el servidor de destino" en la pestaña Paquete / Publicar de las Propiedades para cada una de las aplicaciones web.
En mi definición de compilación he establecido los siguientes argumentos:
/ p: DeployOnBuild = Verdadero / p: DeployTarget = MSDeployPublish / p: MSDeployPublishMethod = InProc / p: MsDeployServiceUrl = http://my-server-name:8172/msdeploy.axd / p: EnablePackageProcessLoggingAndAssert = True
Sin embargo, cuando ejecuto la compilación, aparece el siguiente error para las tres aplicaciones web:
Actualizando setAcl (MyProjectName).
C: / Archivos de programa / MSBuild / Microsoft / VisualStudio / v10.0 / Web / Microsoft.Web.Publishing.targets (3481,5): error: Error en la tarea de implementación web. (Se intentó realizar una operación no autorizada).
Aunque no creo que este sea mi problema real. Este error se produce después de la siguiente entrada en el registro: Actualizar setAcl Esto es lo que está causando el mensaje de error, pero parece que MSDeploy está intentando implementarlo en el IIS local en el servidor de compilación, no en el servidor que especifiqué con el parámetro MsDeployServiceUrl.
Después de ver el archivo de objetivos en C: / Archivos de programa / MSBuild / Microsoft / VisualStudio / v10.0 / Web / Microsoft.Web.Publishing.targets, agregué el EnablePackageProcessLoggingAndAssert, que agrega un registro adicional. El registro muestra una cadena de caracteres para el valor de MsDeployServiceUrl. También noté en el destino que MsDeployServiceUrl tiene una s minúscula, lo que es un poco confuso porque el nombre de la tarea MSDeployPublish tiene una S mayúscula. Intenté usarla usando mayúscula, luego otra vez usando minúscula, pero tampoco funcionó.
Un par de otras cosas a tener en cuenta:
- Mi servicio de compilación se ejecuta como SERVICIO DE RED.
- El servidor que estoy intentando implementar está en otro dominio.
- También intenté agregar / p: username = mydomain / myusername / p: password = mypassword a la lista de parámetros de MSBuild, pero eso no ayudó.
¿Alguien sabe si estoy suministrando los parámetros correctos? ¿O me proporcionas los correctos?
Gracias
Para la compilación que Team Build está ejecutando, ¿qué archivo especificó? Si se trataba de un archivo de solución, el simple hecho de pasarle esas propiedades no significa que luego se propaguen a cada archivo de proyecto cuando se crean. Cuando crea archivos de soluciones, solo se pasa un conjunto limitado de propiedades a los proyectos que se están construyendo. Si este es el caso, debe crear un archivo .proj que esencialmente reemplace su archivo de solución y pase estas propiedades.
Recientemente hice un blog sobre cómo reemplazar su archivo de solución con un archivo de MSBuild .
Déjame saber si esto no se aplica a ti o no te ayuda.
Para su información, también podría estar interesado en este otro hilo en MSDeploy, pero no es el mismo problema que tiene aquí. ¿Cómo puedo obtener TFS2010 para ejecutar MSDEPLOY por mí a través de MSBUILD? .
Teniendo en cuenta que vs2010 es RTM''d, puede considerar simplemente actualizar y ver si el problema desaparece.