IIS 7.0 또는 나중에 World Wide Web 게시 서비스 장애 조치 클러스터에서 Windows Server 2008, Windows Server 2008 R2 또는 Windows Server 2012 구성

기술 자료 번역 기술 자료 번역
기술 자료: 970759 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

소개

이 문서에서는 Microsoft 인터넷 정보 서비스 (IIS) 7.5 또는 IIS 7.0에서 Windows Server 2008 또는 Windows Server 2008 R2 장애 조치 클러스터를 구성 하는 방법을 설명 합니다. 이 문서의 절차를에서 웹 게시 서비스에만 적용 됩니다. FTP 게시 서비스 장애 조치 클러스터에서 구성 하는 방법에 대 한 지침은 다음을 참조 하십시오.
974603 Windows Server 2008 장애 조치 클러스터에 IIS 7.0의 FTP 7.5를 구성 하는 방법

추가 정보

이전 버전의 인터넷 정보 서비스에서 Microsoft 제네릭 리소스 모니터 구성 요소에서 Microsoft 클러스터링 인프라를 사용 하 여 고가용성 웹 서버 인스턴스를 지원 하기 위해 제공. 그러나 사용자 지정 코드는 완전히 이러한 솔루션의 가능성을 실현 하려면 필요 했습니다. 또한 Microsoft 제공 되는 일반 스크립트는 고객의 요구를 충족 하지 않습니다. Windows Server 장애 조치 클러스터링을 사용 하 여 클러스터 된 환경에서 IIS 7.5 또는 IIS 7.0을 구성 하는 사용자 지정 (스크립트) 코드를 사용 하 여 고가용성 시나리오를 사용 해야 합니다. 이렇게 하면 사용자가 자신의 요구 사항에 맞게 설치를 사용자 지정할 수 있습니다. 그 전체를 웹 응용 프로그램의 가용성 통합 제어할을 수 있습니다. 또한, IIS 7.0 및 IIS 7.5 관리 및 모니터링을 위한 인터페이스에 소개 된 스크립트는 이전에 제공한 스크립트 보다 풍부한 환경을 제공 합니다.

참고 IIS 6.0에서는 IIS를 사용 하는 Clusftp.vbs 스크립트가 파일 관리 작업을 클러스터 및 IIS 7.0 설치 파일은 Clusweb.vbs 올바르게 포함 됩니다. 이러한 스크립트는 IIS 7.0 또는 이후 버전을 사용 하지 마십시오.

Microsoft 네트워크 로드 균형 조정 (NLB)의 장애 조치 클러스터링을 사용 하지 않고 IIS 7.5 또는 IIS 7.0을 실행 하는 여러 서버가 있는 확장성 및 웹 응용 프로그램의 가용성을 개선 하기 위한 기본 및 기본 메서드의 사용 관리자를 신중 하 게 평가 하는 것이 좋습니다. NLB의 장점 중 하나는 모든 서버가 들어오는 HTTP 요청의 동시 처리를 적극적으로 참여할 수는 있습니다. 또 다른 이점은 NLB IIS 환경에서 훨씬 쉽게 웹 응용 프로그램의 높은 가용성을 제공 하면서도 롤링 업데이트 및 롤백을 지원할 수 있습니다. NLB 환경에서 IIS 7.5 또는 IIS 7.0을 사용 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 참조 하십시오.
http://learn.iis.net/page.aspx/213/network-load-balancing
http://technet.microsoft.com/en-us/library/cc770558.aspx
IIS 서비스를 클러스터링 하는 통해 IIS 클러스터링은 고가용성 솔루션을 웹 응용 프로그램을 항상 보장 하지 않습니다 고려 하는 것이 중요 합니다. IIS 서비스 (WWW 서비스)를 실행할 수 있지만, 특정 응용 프로그램 풀의 호스팅 프로세스 종료 된 수, 또는 응용 프로그램 내부 서버 HTTP 오류 투 척 수 있습니다. 웹 응용 프로그램에 클러스터링 및 사용자 지정 스크립트를 사용 하 여 자신의 상태 모니터링 장애 조치 클러스터링을 사용 하 여 고가용성을 IIS 클러스터 얻을 올바른 및 권장 방법입니다. 아래 또는 시작 될 경우 확인 하려면 응용 프로그램 풀의 상태를 모니터링 하는 샘플 스크립트가입니다.

IIS 7.0 및 7.5 웹 서버 장애 조치 클러스터링을 사용 하 여 높은 수준의 가용성을 구성 하려면 다음과 같이 하십시오. 3-7 단계는 아래에 자세히 설명 되어 있습니다.? 이 문서의 뒷부분에 나오는 예제 스크립트 예를 들어 IIS 7.0 및 IIS 7.5 IIS 8.0에 대 한 수 있습니다.
  1. 웹 서버 역할을 모든 클러스터 노드에 설치 합니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
    http://technet.microsoft.com/en-us/library/cc771752.aspx
  2. 모든 클러스터 노드에서 장애 조치 클러스터링 기능을 설치 하 고 클러스터를 만듭니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
    http://technet.microsoft.com/en-us/library/dd197477.aspx
  3. IIS 공유 구성을 사용할 파일 공유를 설정 합니다.
  4. 모든 클러스터 노드에서 공유 구성을 IIS를 구성 합니다.
  5. 모든 클러스터 노드에서 IIS 오프 라인 파일 공유 구성에 대 한를 구성 합니다.
  6. (포함) 관련된 응용 프로그램 풀, 웹 사이트를 구성 하 고 하나의 클러스터 노드에서 해당 콘텐츠의 위치를 지정 합니다.
  7. 장애 조치 클러스터링 일반 스크립트를 만들어 웹 사이트에 대 한 높은 수준의 가용성을 구성 합니다.

IIS 공유 구성을 사용할 파일 공유 설정

  1. IIS 공유 구성을 사용할 공유에 액세스 하는 사용자를 만듭니다.
  2. 파일 공유를 만듭니다. 이 공유는 모든 클러스터 노드에서 IIS 간에 공유 되는 IIS 공유 구성을 저장 하려면 사용 됩니다. 여러 옵션이 있습니다.
    • 장애 조치 클러스터의 일부가 아닌 독립 실행형 서버에서 파일 공유를 만듭니다.
    • 다른 Windows 서버 장애 조치 클러스터에서 고가용성 파일 공유를 만듭니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
      http://technet.microsoft.com/en-us/library/cc731844.aspx
    • 고가용성 웹 사이트를 호스팅할 동일한 장애 조치 클러스터에서 고가용성 파일 공유를 만듭니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
      http://technet.microsoft.com/en-us/library/cc731844.aspx
  3. 2 단계에서 만든 공유에 설정 된 사용 권한을. 1 단계 모든 권한이 파일 공유 및 NTFS 사용 권한에서 만든 사용자에 게 제공 합니다.
  4. 모든 클러스터 노드에서 파일 공유 탐색할 수 있는지 확인 하십시오. 파일 공유 경로 \\<fileserver>\<share>.</share> </fileserver>

모든 클러스터 노드에서 공유 구성을 IIS 구성

참고 IIS 공유 구성 Windows 2008 서버에서 누락 된 권한으로 인해 응용 프로그램 호스트 도우미 서비스 문제가 있습니다. 공유 구성 작동 하도록 Windows 2008 서버의 IIS 공유 구성을 설정할 때 이러한 단계를 수행 해야 합니다.
  1. 관리 명령 프롬프트를 엽니다.
  2. 다음 명령을 실행 합니다.
    net stop apphostsvc
  3. 다음 명령을 실행 합니다.
    SeChangeNotifyPrivilege/으로/SeImpersonatePrivilege sc 권한 apphostsvc
  4. 다음 명령을 실행 합니다.
    net 시작 apphostsvc
클러스터에 있는 각 Windows 2008 서버에서 이러한 단계를 완료 한 후이 절에서 설명 하는 대로 IIS 공유 구성 설정을 계속 합니다.

클러스터 노드 중 하나에서 공유 구성 파일 공유로 내보냅니다.
  1. 이동 관리 도구를 클릭 하 고 다음을 클릭 인터넷 정보 서비스 (IIS) 관리자.
  2. 왼쪽된 창에서 서버 이름을 노드를 클릭 합니다.
  3. 두 번 클릭 하 여 공유 구성 아이콘입니다.
  4. 공유 구성 페이지에서 클릭 구성 내보내기작업 로컬 컴퓨터에서 구성 파일을 다른 위치로 내보낼 수 창 (오른쪽 창).
  5. 구성 내보내기 대화 상자를 공유 파일의 경로 입력 (\\<fileserver>\<share></share></fileserver>)에 실제 경로 상자입니다.
  6. 클릭 으로 연결 합니다.을 누른 다음 사용자 이름과 암호를 사용자 계정에 공유에 액세스할 수 있습니다를 입력 공유 구성, 저장 및 다음을 클릭 확인. 이 계정이 공유에 액세스 하려면 사용 됩니다. 도메인 관리자가 아닌 제한 된 Active Directory 계정을 사용 해야 합니다.
  7. 구성 내보내기 대화 상자에서 입력 한 암호는 암호화 키를 보호 하는 데 사용 하 고 다음을 클릭합니다 확인.
  8. 공유 구성 페이지에서 클릭 하 여 선택 하는 공유 구성 사용 확인란입니다.
  9. 실제 경로, 사용자 계정 및 이전에 입력 한 암호를 입력 하 고을 클릭합니다 적용작업 창입니다.
  10. 암호화 키 암호 대화 상자에서 암호화 키를 이전에 설정 하 고 다음을 누릅니다 암호 형식 확인.
  11. 공유 구성 대화 상자에서 클릭 확인.
  12. 클릭 확인.
다른 클러스터 노드의 각각에 파일 공유 방금 내보낸 공유 구성을 사용 하십시오.
  1. 이동 관리 도구를 클릭 하 고 다음을 클릭 인터넷 정보 서비스 (IIS) 관리자.
  2. 서버 이름 노드를 클릭 합니다.
  3. 두 번 클릭 하 여 공유 구성 아이콘입니다.
  4. 공유 구성 페이지에서 클릭 하 여 선택 하는 공유 구성 사용 확인란입니다.
  5. 파일 공유 (실제 경로 입력 합니다.\\<fileserver>\<share></share></fileserver>), 사용자 계정 및 암호를 입력 하 고을 클릭 적용작업 창입니다.
  6. 암호화 키 암호 대화 상자에서 암호화 키를 이전에 설정 하 고 다음을 누릅니다 암호 형식 확인.
  7. 공유 구성 대화 상자에서 클릭 확인.
  8. 클릭 확인.
참고 IIS에서 공유 구성을 설정 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://learn.iis.net/page.aspx/264/shared-configuration

모든 클러스터 노드에서 IIS 오프 라인 파일 공유 구성 위한 구성

각 클러스터 노드에 오프 라인 파일 사용:
  1. 데스크톱 경험 설치
    1. 이동 관리 도구를 클릭 하 고 다음을 클릭 서버 관리자.
    2. 왼쪽된 창에서 클릭 합니다. 기능.
    3. 클릭 기능 추가 오른쪽 창에서.
    4. 선택 하는 데스크톱 경험 확인란입니다.
    5. 클릭 설치 데스크톱 경험을 설치 하려면.
    6. 컴퓨터를 다시 시작합니다.
  2. 제어판을 엽니다. 오프 라인 파일.
  3. 클릭 오프 라인 파일 사용. 이 지금은 컴퓨터를 다시 시작 하지 마십시오.
  4. 캐시 설정 되어 있는지 확인 하십시오 읽기 전용입니다. 이렇게 하려면 상승 된 cmd 창에는 다음 명령을 실행:
    REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /f 
    
  5. 컴퓨터를 다시 시작합니다.
  6. 컴퓨터에서 서버에 파일을 찾습니다. IIS 공유 구성이 들어 있는 공유 마우스 오른쪽 단추로 클릭 하 고을 클릭합니다 항상 사용 가능한 오프 라인.
    현재 사용 중인 클러스터 노드 가용성 높은 파일 서버를 호스팅하는 경우 공유를 마우스 오른쪽 단추로 클릭 하면 참고 동일한 장애 조치 클러스터에서 고도로 사용할 수 있도록 파일 공유를 설치 하는 경우 해당 IIS 노드 호스트, 항상 오프 라인 사용 가능 옵션이 나타나지 않습니다. 높은 사용 가능한 파일 서버 응용 프로그램을 다른 노드로 이동 해야 합니다.
  7. 제어판을 엽니다. 오프 라인 파일. 클릭 동기화 센터 열기를 클릭 하 고 다음을 클릭 일정.
  8. 오프 라인 파일 동기화를 매일 또는 요구 사항에 따라 예약 합니다. 오프 라인 동기화 몇 분 마다 실행 되도록 구성할 수도 있습니다. Applicationhost.config 파일에서 항목을 변경 하는 경우는 스케줄러를 설정 하지 않더라도 변경 웹 서버에 반영 됩니다.
참고 오프 라인 파일 공유 구성 IIS에서 구성 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://learn.iis.net/page.aspx/212/offline-files-for-shared-configuration

(포함) 관련된 응용 프로그램 풀, 웹 사이트를 구성 하 고 하나의 클러스터 노드에서 해당 콘텐츠의 위치를 지정 합니다.

클러스터 디스크 리소스를 소유 하는 클러스터 노드에 웹 사이트 컨텐트 파일의 위치를 찾습니다.
  1. 이동 관리 도구를 클릭 하 고 다음을 클릭 장애 조치 클러스터 관리자.
  2. 클러스터에 연결 합니다. 클러스터 노드 중 하나에 있으면 클러스터 목록에 자동으로 나타납니다.
  3. 아래에서 저장소에 웹 페이지 내용이 있는 디스크 리소스를 찾습니다. 이렇게 하려면 디스크 리소스에 대 한 저장소 트리를 확장 합니다. 저장소가 클러스터에 다른 고가용성 응용 프로그램에서 사용 되지 않도록 해야 합니다. 저장소에서 찾을 수합니다 있습니다. 사용 가능한 저장소.
  4. 클러스터 노드가이 리소스를 온라인 상태가 note입니다. 해당 클러스터 노드에 IIS를 구성 합니다.
  5. 클러스터 디스크 리소스 이름을 note입니다. 이 콘텐츠 파일을 사용 합니다.
리소스를 온라인 상태인 클러스터 노드에서 웹 사이트 콘텐트를 공유 디스크 사용 하도록 웹 서버를 구성 합니다.
  1. 이동 관리 도구를 클릭 하 고 다음을 클릭 인터넷 정보 서비스 (IIS) 관리자.
  2. 왼쪽된 창에서 서버 이름을 노드를 확장 합니다.
  3. 확장 사이트및 다음에서 사이트를 구성 하 고 사이트를 클릭 합니다.
  4. 오른쪽 창에서 선택 합니다. 고급 설정 아래에서 웹 사이트 관리.
  5. 찾기는 실제 경로 아래의 속성 일반 설정 및 웹 사이트의 콘텐츠 파일이 위치한 위치를 입력 합니다. 이전 절차의 5 단계에서 기록해 둔 클러스터 디스크 리소스의 위치입니다.
  6. 클릭 확인.

장애 조치 클러스터 관리자에서 일반 스크립트를 만들어 웹 사이트에 대 한 높은 가용성 구성

마지막 단계에 대 한 IIS 웹 서버에 대 한 높은 수준의 가용성을 구성 하려면 웹 사이트 및 웹 사이트 응용 프로그램 풀을 모니터링 하는 데 사용 되는 일반 스크립트 리소스 설정:
  1. 각 클러스터 노드에서이 문서의 끝에 있는 스크립트 windows\system32\inetsrv\clusweb7.vbs에 복사 합니다.
  2. 기본적으로 스크립트는 응용 프로그램 풀은 "defaultapppool" 하 고 "기본 웹 사이트" 라는 웹 사이트를 모니터링 합니다. 이 올바른 웹 사이트 및 응용 프로그램 풀이 없으면 SITE_NAMEAPP_POOL_NAME 변수를 변경 합니다. 동일한 웹 사이트 및 응용 프로그램 풀을 스크립트의 모든 클러스터 노드에 있는지 확인 하십시오. 이름은 대/소문자를 참고 합니다.
  3. 이동 관리 도구를 클릭 하 고 다음을 클릭 장애 조치 클러스터 관리자.
  4. 클러스터에 연결 합니다. 클러스터 노드 중 하나에 있으면 클러스터 목록에 자동으로 나타납니다.
  5. 클러스터를 마우스 오른쪽 단추로 클릭 하 고을 클릭합니다 서비스 또는 응용 프로그램 구성. 마법사를 고가용성 작업 부하를 만듭니다.
  6. 클릭 일반 스크립트.
  7. 다음 경로에서 스크립트 파일 선택: %systemroot%\System32\Inetsrv\clusweb7.vbs
  8. 클라이언트 액세스 지점 (CAP) 이름이 클라이언트에서 고가용성 웹 사이트로 연결 하는 데 사용할 웹 사이트 이름을 설정 합니다. 웹 사이트에 CAP 사용할 수 있는 정적 Ip를 지정 합니다. DHCP를 사용 하는 경우이 옵션이 표시 되지 않습니다.
  9. 저장소를 선택 합니다. 단계에서 웹 사이트 컨텐트 파일을 저장할 클러스터 공유 디스크를 선택 합니다. 저장소가 클러스터에 다른 고가용성 응용 프로그램을 사용 해야 합니다. 파일을 공유 하는 경우 공유 IIS 구성에 대 한 사용 됩니다 참고 동일한 클러스터에서 호스팅된, 여기에 다른 디스크 리소스 사용 해야 합니다.
  10. 설정을 확인 한 후 마법사 클러스터 그룹, 클러스터 리소스 및 해당 리소스 간의 종속성을 만들어 하 고 리소스를 온라인 상태로 만듭니다.
참고 동일한 장애 조치 클러스터에서 여러 높은 가용성 웹 사이트를 호스트 하려면 위와 동일한 단계를 따릅니다. 그러나 다른 스크립트 파일은 각 웹 사이트 및 다른 클러스터 된 공유 저장소에 사용 합니다. 예를 들어, %systemroot%\system32\inetsrv, clusweb7.vbs clweb7-2.vbs에 대 한 세 번째, 두 번째, clweb7 3.vbs에 대 한 첫 번째 웹 사이트를 사용 하 고 등. 각 스크립트 파일에 다른 웹 사이트 및 응용 프로그램 풀을 모니터링합니다.

중요 한다음 스크립트 샘플 목적 이며 명시적으로 Microsoft에서 지원 되지 않습니다. 이 스크립트는 IIS 7.0 또는 IIS 7.5에서 8.0 IIS 클러스터 된 환경에서의 사용에 따른 모든 책임입니다.
'<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>

속성

기술 자료: 970759 - 마지막 검토: 2013년 3월 18일 월요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Information Services 8.0
  • Microsoft Internet Information Services 7.5
  • Microsoft Internet Information Services 7.0
  • Windows Server 2012 Datacenter
  • Windows Server 2012 Standard
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 Service Pack 2
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
키워드:?
kbclustering kbhowto kbsurveynew kbmt KB970759 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:970759

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com