Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema en el que no se pueden 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
Considere el siguiente escenario: 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 NET STOP HTTP
instrucción de línea 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 siguiente mensaje:
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 está instalado 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 un 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.