Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à résoudre le problème où vous ne pouvez pas arrêter les services HTTP à l’aide de la commande HTTP NET STOP lorsque le service de déploiement Web Microsoft (MSDEPSVC) est installé.
Version du produit d’origine : Service de déploiement web Microsoft
Numéro de base de connaissances d’origine : 2597817
Symptômes
Considérons le scénario suivant. Vous tentez d’arrêter le service HTTP sur un serveur exécutant Internet Information Services (IIS) 6, 7 ou 7.5. Le serveur dispose également du service de déploiement web Microsoft (MSDEPSVC) installé. Lorsque vous essayez d’arrêter le service HTTP à l’aide de l’instruction NET STOP HTTP
de ligne de commande, le message d’erreur suivant s’affiche dans l’invite de commandes :
Le service HTTP s’arrête.....
Impossible d’arrêter le service HTTP.
Si vous réexécutez la NET STOP HTTP
commande, le message suivant s’affiche :
Le service démarre ou s’arrête. Veuillez réessayer plus tard.
Cause
Ce problème se produit parce que le service de déploiement Web Microsoft (MSDEPSVC) dépend du service HTTP, mais lorsque MSDEPSVC est initialement installé, cette dépendance n’est pas inscrite auprès du Gestionnaire de contrôle de service. Lorsque HTTP tente d’arrêter, il doit également arrêter ses services dépendants. Toutefois, HTTP n’est pas conscient qu’il doit arrêter MSDEPSVC en raison de la dépendance non inscrite et par conséquent, la page d’arrêt du service échoue.
Résolution
Pour résoudre ce problème, copiez le script suivant et exécutez-le en tant que script PowerShell sur le serveur. Le script garantit que toutes les dépendances du service HTTP sont correctement inscrites.
$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
}
}
Vérifiez si le problème est résolu. Si c’est le cas, vous n’avez plus besoin de cette section. Sinon, vous pouvez contacter le support technique.
References
Pour plus d’informations sur l’outil de déploiement web, consultez Web Deploy 3.6.