HTTP-Dienste können nicht beendet werden, wenn der Microsoft-Webbereitstellungsdienst installiert ist
Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem Sie HTTP-Dienste nicht mit dem BEFEHL NET STOP HTTP beenden können, wenn microsoft Web Deployment Service (MSDEPSVC) installiert ist.
Ursprüngliche Produktversion: Microsoft-Webbereitstellungsdienst
Ursprüngliche KB-Nummer: 2597817
Problembeschreibung
Stellen Sie sich folgendes Szenario vor: Sie versuchen, den HTTP-Dienst auf einem Server zu beenden, auf dem Iis 6, 7 oder 7.5 ausgeführt wird. Auf dem Server ist auch der Microsoft-Webbereitstellungsdienst (MSDEPSVC) installiert. Wenn Sie versuchen, den HTTP-Dienst mithilfe der NET STOP HTTP
Befehlszeilenanweisung zu beenden, wird die folgende Fehlermeldung in der Eingabeaufforderung angezeigt:
Der HTTP-Dienst wird beendet.....
Der HTTP-Dienst konnte nicht beendet werden.
Wenn Sie den NET STOP HTTP
Befehl erneut ausführen, wird die folgende Meldung angezeigt:
Der Dienst wird gestartet oder beendet. Versuchen Sie es später noch mal.
Ursache
Dieses Problem tritt auf, weil der Microsoft-Webbereitstellungsdienst (MSDEPSVC) vom HTTP-Dienst abhängt, aber bei der ersten Installation von MSDEPSVC diese Abhängigkeit nicht beim Dienststeuerungs-Manager registriert ist. Wenn HTTP versucht, zu beenden, muss es auch seine abhängigen Dienste beenden. HTTP ist sich jedoch nicht bewusst, dass MSDEPSVC aufgrund der nicht registrierten Abhängigkeit beendet werden muss, sodass die Dienstunterbrechung fehlschlägt.
Lösung
Um dieses Problem zu beheben, kopieren Sie das folgende Skript, und führen Sie es als PowerShell-Skript auf dem Server aus. Das Skript stellt sicher, dass alle Abhängigkeiten des HTTP-Diensts ordnungsgemäß registriert sind.
$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
}
}
Testen Sie, ob das Problem behoben ist. Wenn das Problem beseitigt ist, sind Sie mit diesem Abschnitt fertig. Wenn das Problem noch nicht behoben ist, wenden Sie sich an den Support.
References
Weitere Informationen zum Webbereitstellungstool finden Sie unter Web Deploy 3.6.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Feedback senden und anzeigen für