Los servicios HTTP no se pueden detener cuando se instala el servicio de implementación web de Microsoft
Este artículo le ayuda a resolver el problema por el que no puede detener los servicios HTTP mediante el comando NET STOP HTTP cuando se instala el servicio de implementación web de Microsoft (MSDEPSVC).
Versión original del producto: Servicio de implementación web de Microsoft
Número de KB original: 2597817
Síntomas
Imagina la siguiente situación: Está intentando detener el servicio HTTP en un servidor que ejecuta Internet Information Services (IIS) 6, 7 o 7.5. El servidor también tiene instalado el servicio de implementación web de Microsoft (MSDEPSVC). Al intentar detener el servicio HTTP mediante la instrucción de línea NET STOP HTTP
de comandos, se muestra el siguiente mensaje de error en el símbolo del sistema:
El servicio HTTP se está deteniendo.....
No se pudo detener el servicio HTTP.
Si vuelve a ejecutar el NET STOP HTTP
comando, se muestra el mensaje siguiente:
El servicio se está iniciando o deteniendo. Inténtelo de nuevo más tarde.
Causa
Este problema se produce porque el servicio de implementación web de Microsoft (MSDEPSVC) depende del servicio HTTP, pero cuando MSDEPSVC se instala inicialmente, esa dependencia no está registrada con Service Control Manager. Cuando HTTP intenta detenerse, también debe detener sus servicios dependientes. Sin embargo, HTTP no es consciente de que necesita detener MSDEPSVC debido a la dependencia no registrada y, por lo tanto, se produce un error en la página de detención del servicio.
Solución
Para resolver este problema, copie el siguiente script y ejecútelo como script de PowerShell en el servidor. El script garantizará que todas las dependencias del servicio HTTP estén registradas correctamente.
$bFoundHttp = $false
$msdepsvc = Get-Service -name MsDepSvc
$reqsvcs = "HTTP"
$msdepsvc.ServicesDependedOn | ForEach-Object `
{
if($_.Name -eq "HTTP")
{
$bFoundHttp = $true
}
else
{
if($_.Name -ne "")
{
$reqsvcs += "/" + $_.Name
}
}
}
if ($bFoundHttp -eq $false)
{
$status = $msdepsvc.Status
if($status -eq "Running")
{
Stop-Service -name MsDepSvc
}
sc.exe config MsDepSvc depend= $reqsvcs
if($status -eq "Running")
{
Start-Service -name MsDepSvc
}
}
Compruebe si se ha solucionado el problema. Si se ha solucionado, ya ha terminado con esta sección. En caso contrario, puede comunicarse con el soporte técnico.
Referencias
Para obtener más información sobre la herramienta de implementación web, consulte Web Deploy 3.6.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de