Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem Sie HTTP-Dienste nicht mithilfe des NET STOP-HTTP-Befehls beenden können, wenn der Microsoft Web Deployment Service (MSDEPSVC) installiert ist.
Ursprüngliche Produktversion: Microsoft Web Deployment Service
Ursprüngliche KB-Nummer: 2597817
Problembeschreibung
Stellen Sie sich folgendes Szenario vor: Sie versuchen, den HTTP-Dienst auf einem Server mit Internetinformationsdienste (IIS) 6, 7 oder 7.5 zu beenden. Der Server hat auch den Microsoft Web Deployment Service (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, da der Microsoft Web Deployment Service (MSDEPSVC) vom HTTP-Dienst abhängt, aber wenn die MSDEPSVC anfänglich installiert wird, wird diese Abhängigkeit nicht beim Dienststeuerungs-Manager registriert. Wenn HTTP versucht, den Stopp zu beenden, muss er auch seine abhängigen Dienste beenden. HTTP ist jedoch nicht bewusst, dass msDEPSVC aufgrund der nicht registrierten Abhängigkeit beendet werden muss und daher die Dienststoppseite 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.