HTTP-services kunnen niet worden gestopt wanneer de Microsoft Web Deployment-service is geïnstalleerd

Dit artikel helpt u bij het oplossen van het probleem waarbij u HTTP-services niet kunt stoppen met behulp van de OPDRACHT NET STOP HTTP wanneer de Microsoft Web Deployment Service (MSDEPSVC) is geïnstalleerd.

Oorspronkelijke productversie: Microsoft Web Deployment Service
Origineel KB-nummer: 2597817

Symptomen

Neem het volgende scenario: U probeert de HTTP-service te stoppen op een server waarop Internet Information Services (IIS) 6, 7 of 7.5 wordt uitgevoerd. Op de server is ook de Microsoft Web Deployment Service (MSDEPSVC) geïnstalleerd. Wanneer u de HTTP-service probeert te stoppen met behulp van de NET STOP HTTP opdrachtregelinstructie, wordt het volgende foutbericht weergegeven in de opdrachtprompt:

De HTTP-service wordt gestopt.....
De HTTP-service kan niet worden gestopt.

Als u de NET STOP HTTP opdracht opnieuw uitvoert, wordt het volgende bericht weergegeven:

De service wordt gestart of gestopt. Probeer het later nogmaals.

Oorzaak

Dit probleem treedt op omdat de Microsoft Web Deployment Service (MSDEPSVC) afhankelijk is van de HTTP-service, maar wanneer MSDEPSVC in eerste instantie wordt geïnstalleerd, wordt deze afhankelijkheid niet geregistreerd bij Service Control Manager. Wanneer HTTP probeert te stoppen, moet het ook de afhankelijke services stoppen. HTTP is zich er echter niet van bewust dat MSDEPSVC moet worden gestopt vanwege de niet-geregistreerde afhankelijkheid en daarom mislukt de serviceonderbreking.

Oplossing

U kunt dit probleem oplossen door het volgende script te kopiëren en als een PowerShell-script op de server uit te voeren. Het script zorgt ervoor dat alle afhankelijkheden van de HTTP-service correct zijn geregistreerd.

$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
    }
}

Controleer of het probleem is opgelost. Als het probleem is opgelost, bent u klaar met deze sectie. Als het probleem niet is verholpen, kunt u contact opnemen met de ondersteuning.

Verwijzingen

Zie Web Deploy 3.6 voor meer informatie over het hulpprogramma voor webimplementatie.