Estoy un poco perdido aquí, después de haber verificado a todos los sospechosos habituales.
Una de las cosas más desconcertantes es que puedo implementar a través de Visual Studio en el servidor Build Agent, usando la misma URL en el mismo servidor, el mismo código (literalmente copié la solución Visual Studio de la s
carpeta del agente de compilación de la última compilación).
Sin embargo, al compilar a través de TFS 2015, veo lo siguiente:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4276,5): Error: Error en la tarea de implementación web. (No se pudo completar la solicitud a la URL del agente remoto 'https://siteurl:8172/msdeploy.axd?site=nombre del sitio'.)
Este error indica que no puede conectarse al servidor. Asegúrese de que la URL del servicio sea correcta, que las configuraciones de red y firewall en esta computadora y en la computadora servidor estén configuradas correctamente y que se hayan iniciado los servicios apropiados en el servidor.
Error de detalles:
No se pudo completar la solicitud a la URL del agente remoto 'https://siteurl:8172/msdeploy.axd?site=nombre del sitio'.
La conexión subyacente se cerró: se produjo un error inesperado en un envío.
No se pueden leer datos de la conexión de transporte: el host remoto cerró a la fuerza una conexión existente.
El host remoto cerró a la fuerza una conexión existente
Además, el registro WMsvc en el servidor IIS de destino no muestra una solicitud que llegue al servidor cuando TFS realiza la compilación; sin embargo, cuando Visual Studio realiza la compilación, sí llega al servidor.
Los argumentos de MSBuild pasados en TFS (se agregaron saltos de línea para facilitar la lectura):
/p:GenerateBuildInfoConfigFile=false
/p:DeployOnBuild=true;
DeployTarget=MSDeployPublish;
MSDeployPublishMethod=WMSvc;
EnableMSDeployBackup=False;
DeployIisAppPath=sitename;
MsDeployServiceUrl=https://siteurl:8172/msdeploy.axd;
AllowUntrustedCertificate=True;
username=$(Web Deploy Username);
password=$(Web Deploy Password);
SkipExtraFilesOnServer=True
La definición de compilación se copió de otra compilación funcional y los únicos cambios fueron la URL y la configuración.
Parece que es un problema de red, pero no sé por qué funcionaría desde el mismo servidor a través de Visual Studio, pero no a través de TFS si el origen (servidor TFS Build Agent) y el destino (servidor web IIS) son los mismos. , el puerto es el mismo, ambos usan https, Web Deploy, etc.
¿Alguna idea sobre cómo seguir depurando?
Información adicional:
Servidor de destino: Windows Server 2012R2 (VM en Azure)
Respuesta1
Compruebe si TLS no coincide. Estábamos usando la clave de registro SchUseStrongCrypto para forzar TLS 1.2 en una máquina y no en la otra. Esto resultó en el "cierre forzoso" igual que experimentó el OP. Blogeó más detalles aquí.https://fuseit.zendesk.com/hc/en-us/articles/360000328595