Microsoft Web Dağıtım Hizmeti yüklendiğinde HTTP hizmetleri durdurulamıyor

Bu makale, Microsoft Web Dağıtım Hizmeti (MSDEPSVC) yüklendiğinde NET STOP HTTP komutunu kullanarak HTTP hizmetlerini durduramama sorununu çözmenize yardımcı olur.

Orijinal ürün sürümü: Microsoft Web Dağıtım Hizmeti
Özgün KB numarası: 2597817

Belirtiler

Aşağıdaki senaryoyu inceleyin. Internet Information Services (IIS) 6, 7 veya 7.5 çalıştıran bir sunucuda HTTP hizmetini durdurmaya çalışıyorsunuz. Sunucuda ayrıca Microsoft Web Dağıtım Hizmeti (MSDEPSVC) yüklüdür. Komut satırı yönergesini kullanarak NET STOP HTTP HTTP hizmetini durdurmaya çalıştığınızda, komut isteminde aşağıdaki hata iletisi görüntülenir:

HTTP hizmeti durduruluyor.....
HTTP hizmeti durdurulamadı.

Komutu yeniden çalıştırırsanız NET STOP HTTP aşağıdaki ileti görüntülenir:

Hizmet başlatılıyor veya durduruluyor. Lütfen daha sonra yeniden deneyin.

Neden

Bu sorun, Microsoft Web Dağıtım Hizmeti (MSDEPSVC) HTTP hizmetine bağlı olduğu için oluşur, ancak MSDEPSVC ilk yüklendiğinde bağımlılık Hizmet Denetim Yöneticisi'ne kaydedilmez. HTTP durmaya çalıştığında, bağımlı hizmetlerini de durdurması gerekir. Ancak HTTP, kayıtlı olmayan bağımlılık nedeniyle MSDEPSVC'yi durdurması gerektiğinin farkında değildir ve bu nedenle hizmet durdurma işlemi başarısız olur.

Çözüm

Bu sorunu çözmek için aşağıdaki betiği kopyalayın ve sunucuda PowerShell betiği olarak çalıştırın. Betik, HTTP hizmetinin tüm bağımlılıklarının düzgün bir şekilde kaydedilmesini sağlar.

$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
    }
}

Sorunun giderilip giderilmediğini denetleyin. Sorun çözülmüşse, bu bölümle işiniz bitti demektir. Sorun düzeltilmemişse, destek hizmetlerine başvurabilirsiniz.

Başvurular

Web Dağıtım Aracı hakkında daha fazla bilgi için bkz. Web Dağıtımı 3.6.