Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo consente di risolvere il problema in 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 distribuzione Web Microsoft
Numero KB originale: 2597817
Sintomi
Si consideri 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 della NET STOP HTTP
riga di comando, nel prompt dei comandi viene visualizzato il messaggio di errore seguente:
Il servizio HTTP viene arrestato.....
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. Riprova più tardi.
Causa
Questo problema si verifica perché il servizio di distribuzione Web Microsoft (MSDEPSVC) dipende dal servizio HTTP, ma quando MSDEPSVC viene inizialmente installato tale dipendenza non viene registrata con Service Control Manager. Quando HTTP tenta di arrestare, deve arrestare anche i servizi dipendenti. HTTP non è tuttavia consapevole del fatto che deve arrestare MSDEPSVC a causa della dipendenza non registrata e pertanto la pagina di arresto del servizio non riesce.
Risoluzione
Per risolvere questo 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.