tfs msbuild web-deployment tfs2012 webdeploy

tfs - Acceso denegado cuando intenta utilizar la implementación web



msbuild web-deployment (3)

He estado siguiendo Entornos estándar para implementación y pruebas automatizadas y he encontrado algunos errores.

Tengo dos servidores, uno Windows Server 2008 R2 y otro Windows Server 2012 . En ambos instalé Web Deploy 3 y el servicio Web Deployment Agent Service está ejecutando en ambas máquinas. Tengo la cuenta de servicio en mi dominio y agregué la cuenta en ambas máquinas al grupo Administradores. También usé esta cuenta para el controlador y agente de compilación y prueba.

El servidor 2008 es el servidor de compilación y quiero implementar un sitio web con el servidor de compilación en el servidor de 2012. Tengo una definición de compilación que crea el paquete con zip y deploy.cmd etc. con la plantilla de proceso TFS 2012 Update 2 estándar (se agrega /p:DeployOnBuild=True como argumento de compilación MS).

Tengo otra definición de compilación basada en la plantilla LabDefaultTemplate TFS 2012 actualización 2. En las plantillas de proceso de laboratorio agregué el siguiente comando en la pestaña de implementación:

"$(BuildLocation)/_PublishedWebsites/UI.Web.Mvc4_Package/UI.Web.Mvc4.deploy.cmd" /y /m:SERVERNAME_OF_THE_2012_SERVER

Cuando ejecuto la segunda definición de construcción, aparece el error "Acceso denegado". No sé de dónde viene. No veo que ocurran cosas especiales aquí. También configuré el registro para el diagnóstico, pero eso no funciona.

Cuando establezco una conexión con Remote Desktop para el servidor de compilación 2008 y ejecuto manualmente el mismo deploy.cmd , todo está funcionando. El sitio se implementa en el servidor 2012 y todo se está ejecutando.

¿Alguien me puede ayudar?

Gracias

Registro agregado de la compilación:

Deploy Build on Environment 00:22 Deploying Build 00:22 Run Deployment scripts Initial Property Values Values = Web Server | $(BuildLocation)/_PublishedWebsites/UI.Web.Mvc4_Package/start.bat 00:22 Run Deployment Task Initial Property Values BuildLocation = //AP-GDA06-TFSB/DropFolder/Dev MVC4/Dev MVC4_20130510.11 DeploymentScriptDetails = Web Server | $(BuildLocation)/_PublishedWebsites/UI.Web.Mvc4_Package/start.bat LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/3 MaxWaitTime = 00:30:00 ThrowOnError = True UseRoleForDeployment = True Deployment Task Logs for Machine: 2012_SERVER Access is denied Exception Message: Team Foundation Server could not complete the deployment task for machine ''2012_SERVER'', script ''//2008_SERVER/DropFolder/Dev MVC4/Dev MVC4_20130510.11/_PublishedWebsites/UI.Web.Mvc4_Package/start.bat'' and arguments ''''. (type LabDeploymentProcessException) Exception Stack Trace: Server stack trace: at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.RunCommand(AsyncState state) at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase) at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData) at System.Action`1.EndInvoke(IAsyncResult result) at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.EndExecute(AsyncCodeActivityContext context, IAsyncResult result) at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) Final Property Values BuildLocation = //2008_SERVER/DropFolder/Dev MVC4/Dev MVC4_20130510.11 DeploymentScriptDetails = Web Server | $(BuildLocation)/_PublishedWebsites/UI.Web.Mvc4_Package/start.bat LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/3 MaxWaitTime = 00:30:00 ThrowOnError = True UseRoleForDeployment = True Final Property Values Values = Web Server | $(BuildLocation)/_PublishedWebsites/UI.Web.Mvc4_Package/start.bat

El archivo BAT que se inicia contiene el siguiente comando:

START UI.Web.Mvc4.deploy.cmd /y /m:2012_SERVER


Si inicia la definición de compilación que está utilizando DefaultLabTemplate , debería ver lo siguiente en su registro de compilación:

...

If deployment needed Do deployment Reserve Environment For Deployment Deploy Build on Environment Deploying Build Run Deployment scripts Run Deployment Task Deployment Task Logs for Machine: <your machine> Accessing the following location using the lab service account: <your service account>, <your drop location>.

...

¿Ves que está usando la cuenta de Lab Service?


Al usar Visual Studio 2012 Update 4 y Team Foundation Server, en una configuración de confianza unidireccional o de red aislada / grupo de trabajo, descubrimos que se requiere un paso adicional. Al ejecutar pruebas unitarias automatizadas a través del flujo de trabajo Build-Deploy-Test (pero no de Web Deploy), descubrimos que establecer la cuenta de servicio de laboratorio es solo parte de la solución. Para evitar que Access tenga errores en la compilación, también tuvimos que configurar el usuario para el servicio de agente de Visual Studio Lab.

Esto es lo que parecen los servicios del applet Servicios después de configurar la cuenta de servicio de laboratorio (en este ejemplo, ". / LabAdmin"):

Visual Studio Lab Agent Service | Configures, monitors... | Running | Automatic | Local System   Visual Studio Lab Network Agent Service | Sets network propert... | Running | Automatic | Local System   Visual Studio Test Agent | Provides distributed... | Running | Automatic | ./LabAdmin  

Para solucionar el error de Acceso denegado, también tuvimos que ejecutar el Servicio de agente de Visual Studio Lab en la cuenta de servicio de laboratorio:

Visual Studio Lab Agent Service | Configures, monitors... | Running | Automatic | ./LabAdmin   Visual Studio Lab Network Agent Service | Sets network propert... | Running | Automatic | Local System   Visual Studio Test Agent | Provides distributed... | Running | Automatic | ./LabAdmin  

Después de realizar este cambio y reiniciar los servicios, el error de acceso denegado desapareció. Esto se repitió en dos computadoras objetivo diferentes, al menos con nuestra configuración parece ser un paso necesario.