Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u Microsoft Internet Information Services (IIS) World Wide Web Publishing Service (W3SVC) configureert in een Windows Server-failovercluster (WSFC).
Oorspronkelijke productversie: Windows Server 2008 en latere versies, Internet Information Services 8.0 en latere versies
Oorspronkelijk KB-nummer: 970759
Introductie
De procedures in dit artikel zijn alleen van toepassing op de World Wide Web Publishing Service. Zie FTP configureren voor IIS in een Windows Server-failovercluster voor instructies over het configureren van de FTP-publicatieservice in een failovercluster voor FTP.
Meer informatie
In eerdere versies van Internet Information Services heeft Microsoft algemene onderdelen voor resourcemonitors geleverd ter ondersteuning van webserverexemplaren met hoge beschikbaarheid met behulp van de Microsoft Clustering-infrastructuur. Aangepaste code was echter nodig om het potentieel van een dergelijke oplossing volledig te realiseren. Bovendien voldoen de algemene scripts die Microsoft heeft geleverd niet aan de behoeften van de klant. Als u IIS 7.0 of een latere versie wilt configureren in een geclusterde omgeving die gebruikmaakt van Windows Server-failoverclustering, moet u een aangepaste code (scripting) gebruiken om een dergelijk scenario met hoge beschikbaarheid mogelijk te maken. Wanneer u dit doet, kunnen gebruikers de installatie aanpassen aan hun vereisten. waardoor ze volledige controle hebben over de integratie van hoge beschikbaarheid van webtoepassingen. Daarnaast bieden de scriptinterfaces voor beheer en bewaking die zijn geïntroduceerd in IIS 7.0 een uitgebreidere omgeving dan de scripts die eerder zijn opgegeven.
Notitie
De IIS 7.0-installatiebestanden bevatten onjuist de scriptbestanden Clusweb.vbs en Clusftp.vbs die worden gebruikt in IIS 6.0 voor beheertaken voor IIS-clusters. Gebruik deze scripts niet met IIS 7.0 of een latere versie.
Het is raadzaam dat beheerders het gebruik van Netwerktaakverdeling (NLB) zorgvuldig evalueren als de primaire en voorkeursmethode voor het verbeteren van de schaalbaarheid en beschikbaarheid van webtoepassingen met meerdere servers waarop IIS 7.0 of een latere versie wordt uitgevoerd, in plaats van failoverclustering te gebruiken. Een van de voordelen van NLB is dat alle servers actief kunnen deelnemen aan de gelijktijdige verwerking van binnenkomende HTTP-aanvragen (HyperText Transfer Protocol). Een ander voordeel is dat het in een NLB IIS-omgeving veel eenvoudiger kan zijn om rolling updates en terugdraaiacties te ondersteunen en tegelijkertijd hoge beschikbaarheid van webtoepassingen te bieden. Zie de volgende artikelen voor meer informatie over het gebruik van IIS 7.0 of een latere versie in een NLB-omgeving:
Het is belangrijk om te overwegen dat clustering IIS door clustering van de IIS-services niet altijd een oplossing voor hoge beschikbaarheid voor webtoepassingen garandeert. Hoewel de IIS-services (met name de WWW-service) actief zijn, kan het hostingproces van een specifieke toepassingsgroep zijn beëindigd of kan de toepassing http-fouten van de interne server veroorzaken. Het clusteren van de webtoepassingen en het bewaken van hun status met behulp van een aangepast script is de juiste en aanbevolen manier om een IIS-cluster met hoge beschikbaarheid te bereiken met behulp van failoverclustering. Hieronder ziet u een voorbeeldscript waarmee de status van een toepassingsgroep wordt gecontroleerd om te bepalen of deze is gestart of niet.
Als u hoge beschikbaarheid wilt configureren voor IIS 7.0 of een webserver met een latere versie met behulp van failoverclustering, volgt u deze stappen. Stap 3 tot en met 7 worden hieronder uitgebreid beschreven. Het voorbeeldscript verderop in dit artikel kan worden gebruikt als voorbeeld voor IIS 7.0 of een latere versie.
- Installeer de webserverfunctie op alle clusterknooppunten. Zie de IIS 7-implementatiehandleiding voor meer informatie.
- Installeer de functie failoverclustering op alle clusterknooppunten en maak het cluster. Zie de implementatiehandleiding voor failoverclusters voor meer informatie.
- Stel een bestandsshare in die wordt gebruikt voor de gedeelde IIS-configuratie.
- Configureer de gedeelde IIS-configuratie op alle clusterknooppunten.
- Configureer OFFLINE IIS-bestanden voor gedeelde configuratie op alle clusterknooppunten.
- Configureer de website (inclusief de gekoppelde groep van toepassingen) en geef de locatie van de inhoud op één clusterknooppunt op.
- Configureer hoge beschikbaarheid voor uw website door een algemeen script te maken in failoverclustering.
Een bestandsshare instellen die wordt gebruikt voor gedeelde IIS-configuratie
- Maak een gebruiker die toegang krijgt tot de share die wordt gebruikt voor de gedeelde IIS-configuratie.
- Maak de bestandsshare. Deze share wordt gebruikt om de gedeelde IIS-configuratie op te slaan die wordt gedeeld tussen IIS op alle clusterknooppunten. Er zijn meerdere opties:
- Maak een bestandsshare op een zelfstandige server die geen deel uitmaakt van een failovercluster.
- Maak op een ander Windows Server-failovercluster een bestandsshare met hoge beschikbaarheid. Ga voor meer informatie naar de stapsgewijze handleiding voor failovercluster: een failovercluster met twee knooppunten voor bestandsservers configureren.
- Maak op hetzelfde failovercluster waarop de website met hoge beschikbaarheid wordt gehost een bestandsshare met hoge beschikbaarheid. Zie de stapsgewijze handleiding voor failovercluster: een failovercluster met twee knooppunten configureren.
- Stel de machtigingen in voor de share die u in stap 2 hebt gemaakt. Geef de gebruiker die u in stap 1 machtigingen voor volledig beheer hebt gemaakt voor de bestandsshare en NTFS-machtigingen.
- Controleer of alle clusterknooppunten naar de bestandsshare kunnen bladeren. Het pad naar de bestandsshare is
\\<fileserver>\<share>
.
De gedeelde IIS-configuratie configureren op alle clusterknooppunten
Notitie
Er is een probleem met de gedeelde IIS-configuratie op Windows 2008 Server vanwege ontbrekende bevoegdheden voor de Application Host Helper Service
. Gedeelde configuratie werkt alleen als u deze stappen uitvoert wanneer u een gedeelde IIS-configuratie instelt op Windows 2008 Server.
Open een beheeropdrachtprompt.
Voer de volgende opdracht uit:
net stop apphostsvc
Voer de volgende opdracht uit:
sc privs apphostsvc SeChangeNotifyPrivilege/SeTcbPrivilege/SeImpersonatePrivilege
Voer de volgende opdracht uit:
net start apphostsvc
Nadat u deze stappen op elke Windows 2008-server in het cluster hebt voltooid, gaat u verder met het instellen van de gedeelde IIS-configuratie, zoals beschreven in deze sectie.
Exporteer op een van de clusterknooppunten de gedeelde configuratie naar de bestandsshare:
- Navigeer naar Systeembeheer en selecteer Vervolgens IIS-beheer (Internet Information Services).
- Selecteer in het linkerdeelvenster het servernaamknooppunt .
- Dubbelklik op het pictogram Gedeelde configuratie .
- Selecteer Op de pagina Gedeelde configuratie de optie Configuratie exporteren in het deelvenster Acties (het rechterdeelvenster) om de configuratiebestanden van de lokale computer naar een andere locatie te exporteren.
- Typ in het dialoogvenster Configuratie exporteren het pad van de bestandsshare (
\\<fileserver>\<share>
) in het vak Fysiek pad . - Selecteer Verbinding maken als en typ vervolgens de gebruikersnaam en het wachtwoord voor het gebruikersaccount dat toegang heeft tot de share waarin de gedeelde configuratie is opgeslagen en selecteer VERVOLGENS OK. Dit account wordt gebruikt voor toegang tot de share. U moet een beperkt Active Directory-account gebruiken dat niet de domeinbeheerder is.
- Typ in het dialoogvenster Configuratie exporteren een wachtwoord dat wordt gebruikt om de versleutelingssleutels te beveiligen en selecteer VERVOLGENS OK.
- Schakel op de pagina Gedeelde configuratie het selectievakje Gedeelde configuratie inschakelen in.
- Typ het fysieke pad, het gebruikersaccount en het wachtwoord dat u eerder hebt ingevoerd en selecteer Vervolgens Toepassen in het deelvenster Acties .
- Typ in het dialoogvenster Wachtwoord voor versleutelingssleutels het versleutelingssleutelwachtwoord dat u eerder hebt ingesteld en selecteer VERVOLGENS OK.
- Selecteer OK in het dialoogvenster Gedeelde configuratie.
- Selecteer OK.
Gebruik op elk van de andere clusterknooppunten de gedeelde configuratie die u zojuist hebt geëxporteerd naar de bestandsshare:
- Navigeer naar Systeembeheer en selecteer Vervolgens IIS-beheer (Internet Information Services).
- Selecteer het servernaamknooppunt .
- Dubbelklik op het pictogram Gedeelde configuratie .
- Schakel op de pagina Gedeelde configuratie het selectievakje Gedeelde configuratie inschakelen in.
- Typ het fysieke pad van de bestandsshare (
\\<fileserver>\<share>
), het gebruikersaccount en het wachtwoord dat u eerder hebt ingevoerd en selecteer vervolgens Toepassen in het deelvenster Acties . - Typ in het dialoogvenster Wachtwoord voor versleutelingssleutels het versleutelingssleutelwachtwoord dat u eerder hebt ingesteld en selecteer VERVOLGENS OK.
- Selecteer OK in het dialoogvenster Gedeelde configuratie.
- Selecteer OK.
Notitie
Ga naar Gedeelde configuratie voor meer informatie over het instellen van gedeelde configuraties in IIS.
IIS Offline-bestanden configureren voor gedeelde configuratie op alle clusterknooppunten
Schakel offlinebestanden in op elk clusterknooppunt:
De bureaubladervaring installeren
- Ga naar Systeembeheer en selecteer Serverbeheer.
- Selecteer Functies in het linkerdeelvenster.
- Selecteer Functies toevoegen in het rechterdeelvenster.
- Voer een van de volgende handelingen uit, indien van toepassing op uw Windows-versie:
- Ga voor Windows Server 2016 naar Install Server with Desktop Experience.
- Voor Windows Server 2012 en 2012 R2 kiest u Bureaubladervaring onder Gebruikersinterfaces en Infrastructuren in de lijst met functies.
- Voor Windows Server 2008 en 2008 R2 kiest u Bureaubladervaring.
- Selecteer Installeren om Bureaubladervaring te installeren.
- Start de computer opnieuw op.
Voer een van de volgende stappen uit:
- Voor Windows Server 2012, 2012 R2 en 2016 selecteert u Sync Center in Configuratiescherm en selecteert u vervolgens Offlinebestanden beheren.
- Voor Windows Server 2008 en 2008 R2 selecteert u Offlinebestanden in Configuratiescherm.
Selecteer Offlinebestanden inschakelen. Start de computer op dit moment niet opnieuw op.
Zorg ervoor dat de cache is ingesteld op alleen-lezen. Voer hiervoor de volgende opdracht uit bij een cmd-prompt met verhoogde bevoegdheid:
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /f
Start de computer opnieuw op.
Blader vanaf de computer naar de bestandsserver. Klik met de rechtermuisknop op de share met de gedeelde IIS-configuratie en selecteer Altijd beschikbaar offline.
Notitie
Als u de bestandsshare zo instelt dat deze maximaal beschikbaar is op hetzelfde failovercluster dat als host fungeert voor IIS-knooppunten, wordt de optie Altijd offline niet weergegeven wanneer u met de rechtermuisknop op de share klikt als het clusterknooppunt waarop u zich bevindt als host fungeert voor de maximaal beschikbare bestandsserver. U moet de maximaal beschikbare bestandsservertoepassing verplaatsen naar een ander knooppunt.
Open offlinebestanden in Configuratiescherm. Selecteer Synchronisatiecentrum openen en selecteer Vervolgens Planning.
Plan een offlinebestandssynchronisatie voor elke dag of volgens uw vereisten. U kunt de offlinesynchronisatie ook zo configureren dat deze elke paar minuten wordt uitgevoerd. Zelfs als u geen scheduler instelt, wordt de wijziging weergegeven op de webserver wanneer u iets wijzigt in het applicationhost.config-bestand .
Notitie
Zie Offlinebestanden voor gedeelde configuratie voor meer informatie over het configureren van offlinebestanden voor een gedeelde configuratie in IIS.
Configureer de website en geef de locatie van de inhoud op één clusterknooppunt op
Zoek het clusterknooppunt dat eigenaar is van de clusterschijfresource waar de inhoudsbestanden van de website blijven:
- Navigeer naar Systeembeheer en selecteer vervolgens Failoverclusterbeheer.
- Maak verbinding met het cluster. Als u zich op een van de clusterknooppunten bevindt, wordt het cluster automatisch weergegeven in de lijst.
- Zoek onder Storage de schijfresource waarop de inhoud van de webpagina zich bevindt. Als u dit wilt doen, vouwt u de opslagstructuur voor de schijfresource uit. Zorg ervoor dat de opslag niet wordt gebruikt door een andere toepassing voor hoge beschikbaarheid in het cluster. U vindt de opslag onder Beschikbare opslag.
- Het clusterknooppunt waarop deze resource online is. U configureert IIS op dat clusterknooppunt.
- De naam van de clusterschijfresource.
U gebruikt dit voor de inhoudsbestanden. Configureer op het clusterknooppunt waarop de resource online is de webserver voor het gebruik van de gedeelde schijf voor website-inhoud:
- Navigeer naar Systeembeheer en selecteer Vervolgens IIS-beheer (Internet Information Services).
- Vouw in het linkerdeelvenster het servernaamknooppunt uit.
- Vouw Sites uit en selecteer vervolgens onder Sites de site die u configureert.
- Selecteer in het rechterdeelvenster Geavanceerde instellingen onder Website beheren.
- Zoek de eigenschap Fysiek pad onder Algemene instellingen en typ vervolgens de locatie waar de inhoudsbestanden van de website zich bevinden. Dit is de locatie van de clusterschijfresource die u in stap 5 van de vorige procedure hebt genoteerd.
- Selecteer OK.
Hoge beschikbaarheid voor uw website configureren door een algemeen script te maken in Failoverclusterbeheer
Voor de laatste stap voor het configureren van hoge beschikbaarheid voor IIS-webservers, stelt u de algemene scriptresource in die wordt gebruikt voor het bewaken van de website en de groep van toepassingen voor de website:
Kopieer op elk clusterknooppunt het script dat aan het einde van dit artikel is opgegeven.
Windows\System32\inetsrv\Clusweb7.vbs
Standaard bewaakt het script een website met de naam Standaardwebsite en een groep toepassingen met de naam DefaultAppPool. Als dit niet de juiste website en groep van toepassingen is, wijzigt u de
SITE_NAME and APP_POOL_NAME
variabelen. Zorg ervoor dat dezelfde website en toepassingsgroep in het script aanwezig zijn op alle clusterknooppunten.Notitie
De namen zijn hoofdlettergevoelig.
Navigeer naar Systeembeheer en selecteer vervolgens Failoverclusterbeheer.
Maak verbinding met het cluster. Als u zich op een van de clusterknooppunten bevindt, wordt het cluster automatisch weergegeven in de lijst.
Voer een van de volgende stappen uit:
- Voor Windows Server 2012, 2012 R2 en 2016 klikt u met de rechtermuisknop op Functies en selecteert u Rol configureren om deze te maken.
- Voor Windows Server 2008 en 2008 R2 klikt u met de rechtermuisknop op het cluster en selecteert u vervolgens Een service of toepassing configureren. Een wizard maakt de workload voor hoge beschikbaarheid.
Selecteer Algemeen script.
Selecteer het scriptbestand in
%systemroot%\System32\Inetsrv\clusweb7.vbs
.Stel de naam van het CLIENT Access Point (CAP) in op de websitenaam die clients gebruiken om verbinding te maken met de website met hoge beschikbaarheid. Geef de statische IP-adressen op die moeten worden gebruikt voor het CAP van de website. Als u DHCP (Dynamic Host Configuration Protocol) gebruikt, wordt deze optie niet weergegeven.
Selecteer in de stap Opslag selecteren de gedeelde clusterschijf waarop de inhoudsbestanden van de website zich bevinden. De opslag moet niet worden gebruikt door een andere toepassing met hoge beschikbaarheid in het cluster.
Notitie
Als de bestandsshare die wordt gebruikt voor de gedeelde IIS-configuratie op hetzelfde cluster wordt gehost, moet hier een andere schijfresource worden gebruikt.
Nadat u de instellingen hebt bevestigd, maakt de wizard de clustergroep, clusterbronnen en de afhankelijkheden tussen de resources en brengt de resources vervolgens online.
Notitie
Als u meerdere websites met hoge beschikbaarheid op hetzelfde failovercluster wilt hosten, volgt u dezelfde stappen als hierboven. Gebruik echter een ander scriptbestand voor elke website en verschillende geclusterde gedeelde opslag. Gebruik bijvoorbeeld
%systemroot%\System32\Inetsrv
clusweb7.vbs voor de eerste website, clweb7-2.vbs voor de tweede, clweb7-3.vbs voor de derde, enzovoort. Elk scriptbestand bewaakt een andere website en groep toepassingen.
Het volgende script is alleen bedoeld voor voorbeelddoeleinden en wordt niet expliciet ondersteund door Microsoft. Gebruik van dit script in een iis 7.0- of een latere versie geclusterde omgeving is op eigen risico.
'<begin script sample>
'This script provides high availability for IIS websites
'By default, it monitors the "Default Web Site" and "DefaultAppPool"
'To monitor another website, 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 website 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>