HTTP-tjänsten kan inte avbrytas när webbdistributionstjänsten från Microsoft är installerad

Symptom

Tänk dig följande situation: Du försöker avbryta HTTP-tjänsten på en server som kör Internet Information Services (IIS) 6, 7 eller 7.5. Servern har även webbdistributionstjänsten från Microsoft (MSDEPSVC) installerad. När du försöker avbryta HTTP-tjänsten med NET STOP HTTP-kommandoradsinstruktionen visas följande felmeddelande i kommandotolken:

HTTP-tjänsten avbryts.....
HTTP-tjänsten kunde inte avbrytas.


Om du kör NET STOP HTTP-kommandot igen visas följande meddelande:

Tjänsten startar eller avbryts. Försök igen senare.



Orsak

Problemet inträffar eftersom webbdistributionstjänsten från Microsoft (MSDEPSVC) är beroende av HTTP-tjänsten, men när MSDEPSVC först installeras registreras inte det beroendet i Tjänsthanteraren. När HTTP försöker att avbryta måste den samtidigt även avbryta sina beroende tjänster. HTTP känner dock inte av att det måste avbryta MSDEPSVC på grund av det oregistrerade beroendet och därför går det inte att avbryta tjänsten.

Lösning

Om du vill att vi ska åtgärda problemet går du till avsnittet Lös det åt mig. Om du hellre vill göra det själv går du till avsnittet Jag löser det själv.

Lös det åt mig



Om du vill att problemet ska åtgärdas automatiskt klickar du på knappen eller länken Fix it. Klicka sedan på Kör i dialogrutan Filhämtning och följ anvisningarna i Fix it-guiden.




Obs!
  • Guiden finns endast på engelska. Den automatiska korrigeringsfilen fungerar dock även för andra språkversioner av Windows.
  • Om du inte sitter vid datorn där problemet finns kan du spara lösningen på ett flashminne eller en cd och sedan köra den på rätt dator.

Gå sedan till avsnittet Löste det här problemet?.



Jag löser det själv

Lös problemet själv genom att kopiera följande skript och köra det som ett PowerShell-skript på servern. Skriptet ser till att alla beroenden av HTTP-tjänsten är korrekt registrerade.



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


Löste det här problemet?

  • Kontrollera om problemet har lösts. I så fall är du klar med det här avsnittet. Om problemet inte är åtgärdat kan du kontakta supporten.
  • Skicka oss gärna dina synpunkter. Om du vill ge oss feedback eller rapportera eventuella problem med den här lösningen kan du skriva en kommentar på bloggen Lös det åt mig eller skicka ett e-postmeddelande till oss.

Mer Information

Information om hur Windows PowerShell 1.0 installeras på en Windows Server 2003-server finns på följande länk:

Engelska Windows PowerShell 1.0-installationspaket för Windows Server 2003 och Windows XP
http://support.microsoft.com/kb/926139




Information om hur Windows PowerShell används på Windows Server 2003, Windows Server 2008 och Windows Server 2008 R2 finns på följande länk:

Windows PowerShell
http://technet.microsoft.com/sv-se/library/bb978526(en-us).aspx




Mer information om webbdistributionsverktyget från Microsoft finns på följande länk:

Web Deploy 2.0
http://www.iis.net/download/WebDeploy

Egenskaper

Artikel-id: 2597817 – senaste granskning 22 nov. 2011 – revision: 1

Microsoft Internet Information Services 6.0, Microsoft Internet Information Services 7.0, Microsoft Internet Information Services 7.5

Feedback