tfs - usar - ¿Cómo implemento el uso de MSDeploy en Team Build 2010 utilizando el servicio WMSVC y la autenticación NTLM?
publish web service iis (2)
Hay un paso adicional, que nunca detecté:
Opcionalmente, puede habilitar a los usuarios para que se autentiquen con el Servicio de administración web mediante NTLM. Para hacer esto, actualice el registro en el servidor agregando una clave DWORD llamada "WindowsAuthenticationEnabled" en HKEY_LOCAL_MACHINE / Software / Microsoft / WebManagement / Server, y configúrelo en 1. Si el servicio de administración web ya está iniciado, la configuración entrará en vigor. después de que se reinicie el servicio.
Estoy intentando implementarlo mediante Team Build 2010 en un servidor web Windows Server 2008 R2. El agente de mi servidor de compilación está configurado para ejecutarse bajo una cuenta de dominio de Windows. He otorgado con éxito los permisos de esta cuenta de dominio en mi servidor web para la implementación con los permisos del Administrador de IIS. Esta cuenta no es un administrador en el servidor web. Puedo hacer que la compilación se despliegue bien usando los siguientes parámetros:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=False
/p:MSDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True
/p:MSDeployServiceUrl=webservername
/p:DeployIisAppPath="Web Site Name"
/p:UserName=DOMAIN/BUILDID
/p:Password=buildidpassword
Debido a que otros desarrolladores van a configurar sus compilaciones, y preferiría no publicar la contraseña de la cuenta de dominio, necesito usar la autenticación NTLM para implementarla. Me gustaría continuar usando el método del servicio de administración web (WMSVC) para la implementación para que BUILDID no tenga que ser un administrador.
He profundizado en "Microsoft.Web.Publishing.targets" y parece que debería poder pasar un parámetro AuthType para controlar el tipo de autorización, pero parece que no tiene ningún efecto. Yo he tratado:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=False
/p:MSDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True
/p:MSDeployServiceUrl=webservername
/p:DeployIisAppPath="Web Site Name"
/p:AuthType=NTLM
Y también he intentado poner un nombre de usuario en blanco (como se ve en otras partes de StackOverflow ), sin éxito. Sigo recibiendo el error:
C:/Program Files (x86)/MSBuild/Microsoft/VisualStudio/v10.0/Web/Microsoft.Web.Publishing.targets(3847,5)
: error: La tarea de implementación web falló. (Conectado al equipo de destino ("webservername" ") utilizando el servicio de administración web, pero no puede autorizar. Asegúrese de que está utilizando el nombre de usuario y la contraseña correctos, que el sitio al que se está conectando existe y que las credenciales representan a un usuario que tiene permisos para acceder al sitio. )
También probé el parámetro UseMsdeployexe
como se mencionó en el enlace anterior, pero luego obtengo otros errores relacionados con la transformación web.config. Parece que el problema ya está en Microsoft Connect y aparece como solucionado en el próximo problema.
Si falla el uso de NTLM, el agente de servicio de generación de equipos debe recibir permiso para que su sitio permita que los no administradores se conecten al sitio o al acceso del servidor de implementación de la aplicación. Puede configurarlo bajo el Servicio de Administración .
Es posible que también desee ver la configuración del proveedor de implementación web. Configuración del proveedor de implementación web
Si se especifica la configuración del proveedor wmsvc, el tipo de autenticación predeterminado es Básico; de lo contrario, el tipo de autenticación predeterminado es NTLM.
También puede cifrar su contraseña con el parámetro encryptPassword y configurar la configuración en el servidor alojado si desea utilizar el tipo de autenticación básica.
Espero que esto ayude.
Este código de error puede aparecer debido a una serie de razones diferentes. Por lo general, indica un problema de autenticación o autorización, y puede ocurrir debido a cualquiera de las siguientes razones:
Si se conecta utilizando el servicio de administración web:
- Verifique que el nombre de usuario y la contraseña sean correctos
- Verificar que el sitio existe
- Verifique que el usuario tenga permisos de administrador de IIS para el alcance del sitio
Si se conecta utilizando el servicio de agente remoto:
- Verifique que el nombre de usuario y la contraseña sean correctos
- Verifique que la cuenta de usuario que especificó sea miembro del grupo de administradores en la computadora remota. NOTA: debido a un error en Web Deploy 2.0, el usuario debe ser el Administrador integrado o un miembro del grupo de seguridad Administradores de dominio. Los intentos de sincronización con cualquier otra cuenta de usuario, incluso si es un administrador, verán este código de error. Verificar que el sitio existe