Non è possibile arrestare i servizi HTTP quando è installato il servizio di distribuzione Web Microsoft
Questo articolo consente di risolvere il problema per cui non è possibile arrestare i servizi HTTP usando il comando HTTP NET STOP quando è installato il servizio di distribuzione Web Microsoft (MSDEPSVC).
Versione originale del prodotto: Servizio di distribuzione Web Microsoft
Numero KB originale: 2597817
Sintomi
Considerate il seguente scenario: Si sta tentando di arrestare il servizio HTTP in un server che esegue Internet Information Services (IIS) 6, 7 o 7.5. Nel server è installato anche il servizio di distribuzione Web Microsoft (MSDEPSVC). Quando si tenta di arrestare il servizio HTTP usando l'istruzione NET STOP HTTP
della riga di comando, al prompt dei comandi viene visualizzato il messaggio di errore seguente:
Il servizio HTTP si sta arrestando.....
Impossibile arrestare il servizio HTTP.
Se si esegue di nuovo il NET STOP HTTP
comando, viene visualizzato il messaggio seguente:
Il servizio viene avviato o arrestato. Riprovare più tardi.
Causa
Questo problema si verifica perché il servizio di distribuzione Web Microsoft (MSDEPSVC) dipende dal servizio HTTP, ma quando MSDEPSVC viene installato inizialmente tale dipendenza non è registrata con Gestione controllo servizi. Quando HTTP tenta di arrestarsi, deve arrestare anche i servizi dipendenti. Tuttavia, HTTP non è consapevole della necessità di arrestare MSDEPSVC a causa della dipendenza non registrata e pertanto l'arresto del servizio non riesce.
Risoluzione
Per risolvere il problema, copiare lo script seguente ed eseguirlo come script di PowerShell nel server. Lo script garantisce che tutte le dipendenze del servizio HTTP siano registrate correttamente.
$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
}
}
Verificare se il problema è stato risolto. Se il problema è stato risolto, non occorre leggere il resto della sezione. Se il problema persiste, è possibile contattare il Supporto tecnico.
Riferimenti
Per altre informazioni sullo strumento di distribuzione Web, vedere Distribuzione Web 3.6.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per