Makale numarası: 970759 - Son Gözden Geçirme: 01 Ekim 2009 Perşembe - Gözden geçirme: 3.2

IIS 7.0 World Wide Web Publishing Service, Microsoft Windows Server 2008'in yerine çalışma kümesinde yapılandırma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Giriş

Bu makalede, Microsoft ınternet ınformation Services (IIS) 7.0, Microsoft Windows Server 2008'in yerine çalışma kümesinde yapılandırma. Bu makaledeki yordamlar yalnızca World Wide Web Publishing hizmeti için geçerlidir. FTP Yayımlama Hizmeti bir başarısızlık kümesinde yapılandırma hakkında yönergeler için lütfen başvurun:
974603  (http://support.microsoft.com/kb/974603/ ) FTP 7.5, Windows Server 2008 Başarısızlık kümesinde IIS 7.0 için yapılandırma

Daha fazla bilgi

Microsoft, önceki sürümlerde ınternet ınformation Services genel kaynak izleyicisi bileşenleri Microsoft kümeleme altyapısını kullanarak yüksek kullanılabilirlik Web sunucusu örneği desteklemek için sağlanır. Ancak, özel kod, olası bir çözümün tam olarak bilmeniz gerekli. Ayrıca, Microsoft sağlanan genel komut dosyası, Müşteri gereksinimlerine karşılamadı. IIS 7.0 kümelenmiş bir ortamda yerine Windows Server kümeleme kullanarak yapılandırmak için <a0></a0>, böyle bir yüksek kullanılabilirlik senaryo etkinleştirmek için bir özel (kodlama) kodu kullanmak zorunda. Bunu yaptığınızda, kullanıcılar kendi gereksinimlerini karşılamak için kurulumu özelleştirebilirsiniz. Bu bunları Web uygulamalarının yüksek kullanılabilirlik tümleştirmesi üzerinde tam denetim sağlar. Ayrıca, IIS 7. 0'da sunulan komut dosyası arabirimleri için yönetim ve izleme, önceden komut dosyalarını daha zengin bir ortam sağlar.

Not IIS 7.0 yükleme dosyalarını, yanlış Clusweb.vbs içerir ve yönetim görevlerini clusftp.vbs komut dosyaları, ııS'NIN IIS 6. 0'da kullanılan cluster. Bu komut dosyaları, IIS 7.0 ile kullanmayın.

Microsoft, yöneticilerin birden çok sunucu kümeleme yerine çalışma kullanmak yerine, IIS 7. 0'da, çalışan ile Web uygulamalarının kullanılabilirliğini ve ölçeklenebilirliğini artırmak için birincil ve tercih edilen yöntem olarak, Ağ Yükü Dengeleme (NLB) kullanımı dikkatle değerlendirin. önerir. NLB yararları tüm sunucuları aynı anda gelen HTTP istekleri işlemede etkin olarak katılabilirler biridir. Başka bir yararı, NLB IIS ortamında, bu yine de Web uygulamalarının yüksek kullanılabilirlik sağlarken, çalışırken Al ve güncelleştirmeleri desteklemek çok daha kolay olabilir, kullanılabilmesidir. Bir NLB IIS 7. 0'ı kullanma hakkında daha fazla bilgi için ortam aşağıdaki Microsoft Web sitelerine bakın:
http://learn.iis.net/page.aspx/213/network-load-balancing (http://learn.iis.net/page.aspx/213/network-load-balancing)
http://technet.microsoft.com/en-us/library/cc770558.aspx (http://technet.microsoft.com/en-us/library/cc770558.aspx)
IIS, IIS hizmetlerinin kümeleme yoluyla kümeleme her zaman Web uygulamaları için yüksek kullanılabilirlik çözüm garanti etmez, dikkate alınması önemlidir. IIS Hizmetleri (özellikle WWW hizmeti) ve olabilir, ancak belirli bir uygulama havuzu çubuğundaki barındıran işlem sonlandırıldı veya uygulama iç sunucu HTTP hataları gönderme. Web uygulamalarını kümeleme ve özel bir komut dosyası kullanarak, sağlık izleme IIS küme üstlenme kümeleme kullanarak yüksek kullanılabilirlik elde etmek için en doğru ve önerilen yoludur. Aşağıdaki örnek komut dosyası, veya başlatılıp başlatılmadığını belirlemek için bir uygulama havuzunun durumunu izler.

Küme üstlenme kullanarak IIS Web sunucuları için yüksek kullanılabilirlik yapılandırmak için şu adımları izleyin. 3 Ile 7. adımları aşağıda daha ayrıntılı olarak açıklanmıştır.
  1. Web sunucu rolünü, tüm küme düğümlerine yükleyin. Ayrıntılar için aşağıdaki Microsoft Web sitesini ziyaret edin:
    http://technet.microsoft.com/en-us/library/cc771752.aspx (http://technet.microsoft.com/en-us/library/cc771752.aspx)
  2. Kümeleme yerine çalışma özelliğini tüm küme düğümlerinde yükleme ve küme oluşturun. Ayrıntılar için aşağıdaki Microsoft Web sitesini ziyaret edin:
    http://technet.microsoft.com/en-us/library/dd197477.aspx (http://technet.microsoft.com/en-us/library/dd197477.aspx)
  3. IIS paylaşılan yapılandırma için kullanılan bir dosya paylaşımı oluşturun.
  4. Paylaşılan IIS yapılandırmasını tüm küme düğümlerinde yapılandırın.
  5. IIS çevrimdışı dosyalar paylaşılan yapılandırması için tüm küme düğümlerinde yapılandırın.
  6. Web sitesi (ilişkilendirilmiş uygulama havuzunu dahil) yapılandırmak ve bir küme düğümünde, içeriğin konumunu belirtin.
  7. Web siteniz için yüksek kullanılabilirlik, yerine çalışma Küme hizmeti genel komut dosyası oluşturarak yapılandırın.

Paylaşılan IIS yapılandırma için kullanılan bir dosya paylaşımına ayarlama

  1. IIS paylaşılan yapılandırması için kullanılacak paylaşım erişecek kullanıcı oluşturun.
  2. Dosya paylaşımı oluşturun. Bu paylaşımın, IIS, tüm küme düğümlerinde arasında paylaştırılır IIS paylaşılan yapılandırmasını saklamak için kullanılır. Birden çok seçenek vardır:
    • Herhangi bir başarısızlık kümesinin parçası olan bir tek başına sunucuda bir dosya paylaşımı oluşturun.
    • Başka bir Windows Server Başarısızlık kümesinde, bir <a0>yüksek kullanılabilirlik</a0> dosya paylaşımı oluşturun. Ayrıntılar için aşağıdaki Microsoft Web sitesini ziyaret edin:
      http://technet.microsoft.com/en-us/library/cc731844.aspx (http://technet.microsoft.com/en-us/library/cc731844.aspx)
    • Yüksek kullanılabilirlik Web sitesini barındıracak aynı başarısızlık küme üzerinde bir <a0>yüksek kullanılabilirlik</a0> dosya paylaşımı oluşturun. Ayrıntılar için aşağıdaki Microsoft Web sitesini ziyaret edin:
      http://technet.microsoft.com/en-us/library/cc731844.aspx (http://technet.microsoft.com/en-us/library/cc731844.aspx)
  3. 2. Adımda oluşturduğunuz paylaşımdaki izinler ayarlayın. Oluşturduğunuz dosya paylaşımı 1. adım Tam Denetim izinleri ve NTFS izinleri kullanıcıya verilir.
  4. Tüm küme düğümlerine dosya paylaşımına Gözat ınternet'e bağlanabildiğinizi doğrulayın. Dosya paylaşımının yolu \\ <fileserver>\ <share>.

Paylaşılan IIS yapılandırmasını tüm küme düğümlerinde yapılandırın.

Not IIS paylaşılan Windows 2008 Sunucusu'ndaki eksik ayrıcalıklarını yüzünden uygulama Host yardımcı hizmetinin yapılandırmasını ile ilgili bir sorun vardır. Paylaşılan IIS yapılandırmasını Windows 2008 Server ayarladığınızda, çalışmak paylaşılan yapılandırma adımları izlemelisiniz.
  1. Bir yönetici komut istemini açın.
  2. Aşağıdaki komutu çalıştırın:
    net stop apphostsvc
  3. Aşağıdaki komutu çalıştırın:
    sc privs apphostsvc SeChangeNotifyPrivilege/SeTcbPrivilege/SeImpersonatePrivilege
  4. Aşağıdaki komutu çalıştırın:
    net start apphostsvc
Tanımlandığı gibi paylaşılan IIS yapılandırmasını ayarlama, kümedeki her Windows 2008 Server bu adımları tamamladıktan sonra bu bölümde devam edin.

Bir küme düğümleri üzerinde paylaşılan konfigürasyon dosya paylaşımına ver:
  1. Yönetimsel Araçlar ' ın üzerine gidin ve sonra da ınternet ınformation Services (IIS) Yöneticisi ' ni tıklatın.
  2. Sol bölmede <a0>sunucu</a0> adı düğümünü'ı tıklatın.
  3. Paylaşılan bir konfigürasyon simgesini çift tıklatın.
  4. Paylaşılan yapılandırma sayfasında Verme yapılandırma yapılandırma dosyaları dışa aktarmak için Eylemler bölmesinde (sağdaki bölme) yerel bilgisayardan başka bir yere tıklatın.
  5. Verme yapılandırması iletişim kutusunda, dosya paylaşımının yolunu yazın (\\ <fileserver>\ <share>) fiziksel yolu kutusuna.
  6. Farklı Bağlan'ı tıklatın ve sonra da kullanıcı adı ve paylaşımına erişimi olan kullanıcı hesabının parolasını yazın, paylaşılan konfigürasyon depolanır ve Tamam ' ı tıklatın. Bu hesabın, paylaşıma erişim için kullanılır. Etki alanı yöneticisi olmayan sınırlı bir Active Directory hesabı kullanmanız gerekir.
  7. Yapılandırması ver iletişim kutusunda, şifreleme anahtarlarını korumak için kullanılan tıklatın ve sonra Tamam ' den küçük bir parola yazın.
  8. Paylaşılan yapılandırma sayfasında paylaşılan konfigürasyon etkinleştir onay kutusunu seçmek için tıklatın.
  9. Fiziksel yolu, kullanıcı hesabının ve daha önce girdiğiniz parolayı yazın ve sonra da Eylemler bölmesinde Uygula ' yı tıklatın.
  10. Şifreleme anahtarları parolası iletişim kutusunda, daha önce ayarladığınız şifreleme anahtarı parolası yazın ve Tamam ' ı tıklatın.
  11. Paylaşılan yapılandırması iletişim kutusunda, <a3>Tamam</a3>'ı tıklatın.
  12. Tamam ' ı tıklatın.
Her küme düğümleri üzerinde paylaşılan dosya paylaşımına yalnızca verdiğiniz yapılandırmasını kullanın:
  1. Yönetimsel Araçlar ' ın üzerine gidin ve sonra da ınternet ınformation Services (IIS) Yöneticisi ' ni tıklatın.
  2. Sunucu adı düğümünü tıklatın.
  3. Paylaşılan bir konfigürasyon simgesini çift tıklatın.
  4. Paylaşılan yapılandırma sayfasında paylaşılan konfigürasyon etkinleştir onay kutusunu seçmek için tıklatın.
  5. Fiziksel dosya paylaşımının yolunu yazın (\\ <fileserver>\ <share>), kullanıcı hesabı ve parolayı daha önce girilen ve sonra da Eylemler bölmesinde Uygula ' yı tıklatın.
  6. Şifreleme anahtarları parolası iletişim kutusunda, daha önce ayarladığınız şifreleme anahtarı parolası yazın ve Tamam ' ı tıklatın.
  7. Paylaşılan yapılandırması iletişim kutusunda, <a3>Tamam</a3>'ı tıklatın.
  8. Tamam ' ı tıklatın.
Not Paylaşılan bir IIS yapılandırmalarında ayarlama yöntemi hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://learn.iis.net/page.aspx/264/shared-configuration (http://learn.iis.net/page.aspx/264/shared-configuration)

Tüm küme düğümlerinde IIS çevrimdışı dosyalar paylaşılan yapılandırma için yapılandırma

Her küme düğümünde, çevrimdışı dosyaları etkinleştir:
  1. Masaüstü deneyimi yükleyin.
    1. Yönetimsel Araçlar ' ın üzerine gidin ve sonra da Server Manager ' ı tıklatın.
    2. Sol bölmede, Özellikler ' i tıklatın.
    3. Sağ bölmede, Özellikleri Ekle'yi tıklatın.
    4. Masaüstü deneyimi onay kutusunu seçmek için tıklatın.
    5. Masaüstü deneyimi yüklemek için Yükle ' yi tıklatın.
    6. Bilgisayarı yeniden başlatın.
  2. Denetim Masası'nda, Çevrimdışı dosyalar ' ı açın.
  3. Çevrimdışı dosyaları etkinleştir ' i tıklatın. Şu anda bu bilgisayarı yeniden başlatmayın.
  4. Önbellek ayarlanmış emin salt okunur. Bunu yapmak için <a0></a0>, bir ayrıcalığı yükseltilmiş bir cmd penceresinde aşağıdaki komutu çalıştırın:
    REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /f 
    
  5. Bilgisayarı yeniden başlatın.
  6. Dosya sunucusuna bilgisayardan göz atın. Paylaşılan IIS yapılandırmasını içeren paylaşım'ı sağ tıklatın ve sonra Her zaman çevrimdışı.
    Küme düğümü üzerinde olan yüksek oranda kullanılabilir dosya sunucusuna ev sahipliği yapan, paylaşımı üzerinde sağ tıklattığınızda, aynı Başarısızlık kümesinde yüksek oranda kullanılabilir dosya paylaşımına Kur varsa, IIS düğümlerin barındıran Not, her zaman çevrimdışı seçeneği görünmez. Yüksek kullanılabilir dosya sunucu uygulaması başka bir düğüme taşımak gerekir.
  7. Denetim Masası'nda, Çevrimdışı dosyalar ' ı açın. Eşitleme Merkezi'ni Aç'ı tıklatın ve sonra Schedule ' ı tıklatın.
  8. Bir çevrimdışı dosya eşitleme, her gün için veya gereksinimin göre zamanlayabilirsiniz. Çevrimdışı eşitleme birkaç dakikada bir çalışacak şekilde de yapılandırabilirsiniz Applicationhost.config dosyasındaki bir şey değiştiğinde Çizelgeleyici, ayarlanmış olsa bile, değişiklik, Web sunucusu üzerinde yansıtılır.
Not Çevrimdışı dosyalar, ııs'de paylaşılan bir konfigürasyon için nasıl yapılandırılacağı hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://learn.iis.net/page.aspx/212/offline-files-for-shared-configuration (http://learn.iis.net/page.aspx/212/offline-files-for-shared-configuration)

Web sitesi (ilişkilendirilmiş uygulama havuzunu dahil) yapılandırmak ve bir küme düğümünde, içeriğin konumunu belirtin

Küme disk kaynağı sahibi olan düğüm, Web sitesinin içerik dosyalarının bulunacağı bulabilirsiniz:
  1. Yönetimsel Araçlar ' ın üzerine gidin ve Yerine çalışma için Küme Yöneticisi ' ni tıklatın.
  2. Kümeye bağlanın. Küme düğümlerinde birini kullanıyorsanız, küme listede otomatik olarak görüntülenir.
  3. Depolama ' nın altında Web sayfası içeriğini alaca?? disk kaynağı bulun. Bunu yapmak için <a0></a0>, disk kaynağı için depolama ağacı genişletin. Depolama Birimi küme üzerinde başka bir yüksek kullanılabilirlik uygulama tarafından kullanılmasını sağlayın. Depolama Kullanılabilir depolama altında bulabilirsiniz.
  4. Bu kaynağın çevrimiçi olduğu küme düğümü unutmayın. IIS, bu küme düğümünde yapılandıracaktır.
  5. Küme disk kaynağı adını not edin. Bu içerik dosyaları kullanır.
Küme düğümünde, kaynak çevrimiçi olduğunda, Web sitesi içeriği için paylaşılmış disk kullanmak için Web sunucusu yapılandırın:
  1. Yönetimsel Araçlar ' ın üzerine gidin ve sonra da ınternet ınformation Services (IIS) Yöneticisi ' ni tıklatın.
  2. Sol bölmede, sunucu adı düğümünü genişletin.
  3. Siteleri ' ni tıklatın ve sonra Site altında yapılandırmakta olduğunuz site.
  4. Sağ bölmede, Gelişmiş ayarlar altında Web sitesi Yönet'i seçin.
  5. Genel ayarlar altında Fiziksel PATH özelliği'ni bulun ve sonra da Web sitesinin içerik dosyalarının bulunduğu konumun konumu yazın. Önceki yordamı 5 adımında not ettiğiniz küme disk kaynağı konumudur.
  6. Tamam ' ı tıklatın.

Yerine çalışma Küme Yöneticisi'nde genel komut dosyası oluşturarak, yüksek kullanılabilirlik Web siteniz için yapılandırma

IIS Web sunucuları için yüksek kullanılabilirliğini yapılandırmak son adım için Web sitesini ve Web sitesi için uygulama havuzu izlemek için kullanılan genel komut dosyası kaynağını ayarlayın:
  1. Her küme düğümünde, Windows\System32\inetsrv\Clusweb7.vbs için bu makalenin sonunda komut dosyasını kopyalayın.
  2. Varsayılan olarak, komut dosyası "varsayılan Web sitesi" ve "DefaultAppPool" adlı bir uygulama havuzu adlı bir Web sitesi izler. Bu uygulama havuzu ve doğru Web sitesi değilse, SITE_NAME ve APP_POOL_NAME değişkenleri değiştirir. Tüm küme düğümlerinde aynı Web sitesi ve uygulama havuzu komut dosyasında bulunduğundan emin olun. Adlar büyük/küçük harf duyarlı olduğunu unutmayın.
  3. Yönetimsel Araçlar ' ın üzerine gidin ve Yerine çalışma için Küme Yöneticisi ' ni tıklatın.
  4. Kümeye bağlanın. Küme düğümlerinde birini kullanıyorsanız, küme listede otomatik olarak görüntülenir.
  5. Kümeyi sağ tıklatın ve bir hizmet veya uygulama Yapılandır ' ı tıklatın. Sihirbaz, yüksek kullanılabilirlik iş yükü oluşturur.
  6. Genel komut dosyası ' nı tıklatın.
  7. Komut dosyasını aşağıdaki yoldan seçin: %systemroot%\System32\Inetsrv\clusweb7.vbs
  8. Client Access Point (CAP) adı, istemciler yüksek kullanılabilirlik Web sitesine bağlanmak için kullanacağı Web sitesi adına ayarlayın. CAP Web sitesi için kullanılacak bir statik ıp belirtin. DHCP kullanıyorsanız, bu seçeneği görüntülenmez.
  9. Depolama Seç adımı, Web sitesinin içerik dosyalarının bulunduğu küme paylaşılmış disk seçin. Depolama kullanılmayan olması gereken başka bir yüksek kullanılabilirlik uygulama küme üzerinde. IIS paylaşılan yapılandırma için kullanılan bir dosya paylaşımına aynı küme üzerinde barındırılıyorsa, bir başka disk kaynağı burada kullanılması gerektiğini unutmayın.
  10. Ayarları doğruladıktan sonra Sihirbaz küme grubunu, küme kaynakları ve kaynakları arasındaki bağımlılıklar ve sonra kaynaklarını çevrimiçine getirin.
Not Aynı Başarısızlık kümesinde birden çok yüksek kullanılabilirlik Web sitelerini barındırmak için yukarıdaki adımları izleyin. Ancak, farklı bir komut dosyası, her Web sitesi ve farklı kümelenmiş paylaşılan depolama ortamı için kullanın. Örneğin, % systemroot%\System32\Inetsrv, ilk Web sitesinin, second, clweb7 3.vbs için üçüncü olarak clweb7-2.vbs clusweb7.vbs kullanın ve benzeri. Her komut dosyası, bir başka Web sitesi ve uygulama havuzu izler.
'<begin script sample>


'This script provides high availability for IIS websites
'By default, it monitors the "Default Web Site" and "DefaultAppPool"
'To monitor another web site, change the SITE_NAME below
'To monitor another application pool, change the APP_POOL_NAME below
'More thorough and application-specific health monitoring logic can be added to the script if needed

Option Explicit

DIM SITE_NAME
DIM APP_POOL_NAME
Dim START_WEB_SITE
Dim START_APP_POOL
Dim SITES_SECTION_NAME
Dim APPLICATION_POOLS_SECTION_NAME
Dim CONFIG_APPHOST_ROOT
Dim STOP_WEB_SITE


'Note:
'Replace this with the site and application pool you want to configure high availability for
'Make sure that the same web site and application pool in the script exist on all cluster nodes. Note that the names are case-sensitive.
SITE_NAME = "Default Web Site"
APP_POOL_NAME = "DefaultAppPool"

START_WEB_SITE = 0
START_APP_POOL = 0
STOP_WEB_SITE  = 1
SITES_SECTION_NAME = "system.applicationHost/sites"
APPLICATION_POOLS_SECTION_NAME = "system.applicationHost/applicationPools"
CONFIG_APPHOST_ROOT = "MACHINE/WEBROOT/APPHOST"

'Helper script functions


'Find the index of the website on this node
Function FindSiteIndex(collection, siteName)

    Dim i

    FindSiteIndex = -1    

    For i = 0 To (CInt(collection.Count) - 1)
        If collection.Item(i).GetPropertyByName("name").Value = siteName Then
            FindSiteIndex = i
            Exit For
        End If		 
    Next

End Function


'Find the index of the application pool on this node
Function FindAppPoolIndex(collection, appPoolName)

    Dim i

    FindAppPoolIndex = -1    

    For i = 0 To (CInt(collection.Count) - 1)
        If collection.Item(i).GetPropertyByName("name").Value = appPoolName Then
            FindAppPoolIndex = i
            Exit For
        End If		 
    Next

End Function

'Get the state of the website
Function GetWebSiteState(adminManager, siteName)

    Dim sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod
    Set sitesSection = adminManager.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)
    Set sitesSectionCollection = sitesSection.Collection

    index = FindSiteIndex(sitesSectionCollection, siteName)
    If index = -1 Then
        GetWebSiteState = -1
    End If	    

    Set siteSection = sitesSectionCollection(index)

    GetWebSiteState = siteSection.GetPropertyByName("state").Value

End Function

'Get the state of the ApplicationPool
Function GetAppPoolState(adminManager, appPool)

    Dim configSection, index, appPoolState

    set configSection = adminManager.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT)
    index = FindAppPoolIndex(configSection.Collection, appPool)

    If index = -1 Then
        GetAppPoolState = -1
    End If	    

    GetAppPoolState = configSection.Collection.Item(index).GetPropertyByName("state").Value
End Function


'Start the w3svc service on this node
Function StartW3SVC()

    Dim objWmiProvider
    Dim objService
    Dim strServiceState
    Dim response

    'Check to see if the service is running
    set objWmiProvider = GetObject("winmgmts:/root/cimv2")
    set objService = objWmiProvider.get("win32_service='w3svc'")
    strServiceState = objService.state

    If ucase(strServiceState) = "RUNNING" Then
        StartW3SVC = True
    Else
        'If the service is not running, try to start it
        response = objService.StartService()

        'response = 0  or 10 indicates that the request to start was accepted
        If ( response <> 0 ) and ( response <> 10 ) Then
            StartW3SVC = False
        Else
            StartW3SVC = True
        End If
    End If
    
End Function


'Start the application pool for the website
Function StartAppPool()

    Dim ahwriter, appPoolsSection, appPoolsCollection, index, appPool, appPoolMethods, startMethod, callStartMethod
    Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")

    Set appPoolsSection = ahwriter.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT)       
    Set appPoolsCollection = appPoolsSection.Collection

    index = FindAppPoolIndex(appPoolsCollection, APP_POOL_NAME)
    Set appPool = appPoolsCollection.Item(index)
    
    'See if it is already started
    If appPool.GetPropertyByName("state").Value = 1 Then
        StartAppPool = True
        Exit Function
    End If

    'Try To start the application pool
    Set appPoolMethods = appPool.Methods
    Set startMethod = appPoolMethods.Item(START_APP_POOL)
    Set callStartMethod = startMethod.CreateInstance()
    callStartMethod.Execute()
    
    'If started return true, otherwise return false
    If appPool.GetPropertyByName("state").Value = 1 Then
        StartAppPool = True
    Else
        StartAppPool = False
    End If

End Function


'Start the website
Function StartWebSite()

    Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod
    Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
    Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)
    Set sitesSectionCollection = sitesSection.Collection

    index = FindSiteIndex(sitesSectionCollection, SITE_NAME)
    Set siteSection = sitesSectionCollection(index)

    if siteSection.GetPropertyByName("state").Value = 1 Then
        'Site is already started
        StartWebSite = True
        Exit Function
    End If

    'Try to start site
    Set siteMethods = siteSection.Methods
    Set startMethod = siteMethods.Item(START_WEB_SITE)
    Set executeMethod = startMethod.CreateInstance()
    executeMethod.Execute()

    'Check to see if the site started, if not return false
    If siteSection.GetPropertyByName("state").Value = 1 Then
        StartWebSite = True
    Else
        StartWebSite = False
    End If

End Function


'Stop the website
Function StopWebSite()

    Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod, autoStartProperty
    Set ahwriter = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
    Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)
    Set sitesSectionCollection = sitesSection.Collection

    index = FindSiteIndex(sitesSectionCollection, SITE_NAME)
    Set siteSection = sitesSectionCollection(index)

    'Stop the site
    Set siteMethods = siteSection.Methods
    Set startMethod = siteMethods.Item(STOP_WEB_SITE)
    Set executeMethod = startMethod.CreateInstance()
    executeMethod.Execute()

End Function



'Cluster resource entry points. More details here:
'http://msdn.microsoft.com/en-us/library/aa372846(VS.85).aspx

'Cluster resource Online entry point
'Make sure the website and the application pool are started
Function Online( )

    Dim bOnline
    'Make sure w3svc is started
    bOnline = StartW3SVC()

    If bOnline <> True Then
        Resource.LogInformation "The resource failed to come online because w3svc could not be started."
        Online = False
        Exit Function
    End If


    'Make sure the application pool is started
    bOnline = StartAppPool()
    If bOnline <> True Then
        Resource.LogInformation "The resource failed to come online because the application pool could not be started."
        Online = False
        Exit Function
    End If


    'Make sure the website is started
    bOnline = StartWebSite()
    If bOnline <> True Then
        Resource.LogInformation "The resource failed to come online because the web site could not be started."
        Online = False
        Exit Function
    End If

    Online = true 

End Function

 
'Cluster resource offline entry point
'Stop the website
Function Offline( )

    StopWebSite()
    Offline = true

End Function


'Cluster resource LooksAlive entry point
'Check for the health of the website and the application pool
Function LooksAlive( )

    Dim adminManager, appPoolState, configSection, i, appPoolName, appPool, index

    i = 0
    Set adminManager  = CreateObject("Microsoft.ApplicationHost.AdminManager")
    appPoolState = -1

    'Get the state of the website
    if GetWebSiteState(adminManager, SITE_NAME) <> 1 Then
        Resource.LogInformation "The resource failed because the " & SITE_NAME & " web site is not started."
        LooksAlive = false
        Exit Function
    End If


    'Get the state of the Application Pool
     if GetAppPoolState(adminManager, APP_POOL_NAME) <> 1 Then
         Resource.LogInformation "The resource failed because Application Pool " & APP_POOL_NAME & " is not started."
         LooksAlive = false  
	 Exit Function
     end if

     '  Web site and Application Pool state are valid return true
     LooksAlive = true
End Function


'Cluster resource IsAlive entry point
'Do the same health checks as LooksAlive
'If a more thorough than what we do in LooksAlive is required, this should be performed here
Function IsAlive()   

    IsAlive = LooksAlive

End Function


'Cluster resource Open entry point
Function Open()

    Open = true

End Function


'Cluster resource Close entry point
Function Close()

    Close = true

End Function


'Cluster resource Terminate entry point
Function Terminate()

    Terminate = true

End Function
'<end script sample>

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Information Services 7.0
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 Service Pack 2
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
Anahtar Kelimeler: 
kbmt kbhowto kbsurveynew KB970759 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:970759  (http://support.microsoft.com/kb/970759/en-us/ )