웹 사이트 및 웹 응용 프로그램은 IIS(인터넷 정보 서비스) 응용 프로그램 풀의 가용성에 따라 달라집니다. 결과적으로 IIS 응용 프로그램 풀은 WAS(Windows Process Activation Service)에 종속됩니다. WAS가 실행되고 있지 않거나 응용 프로그램 풀을 시작 또는 종료하는 동안 오류가 발생하는 경우 웹 사이트 및 웹 응용 프로그램을 사용할 수 없습니다.
자동 종료 실행 파일 확인
W3SVC(World Wide Web Publishing 서비스)에 의해 응용 프로그램 풀이 종료될 때 사용자 지정 실행 파일이 자동으로 실행되도록 구성할 수 있습니다. 예를 들어 이 실행 파일은 응용 프로그램 풀의 트래픽을 다른 서버로 리디렉션할 수 있습니다. 이 파일은 IIS 관리자에서 지정하고 ApplicationHost.config 파일에서 system.applicationHost/applicationPools/failure 섹션의 autoShutdownExe 특성으로 나타낼 수 있습니다.
autoShutdownExe 프로세스가 실행되지 않는 경우 가능한 해결 방법은 다음과 같습니다.
autoShutdownExe 프로그램의 경로와 파일 이름이 올바로 지정되어 있는지 확인합니다.
시스템 계정이 파일을 액세스하고 실행할 수 있는 권한이 있는지 확인합니다.
응용 프로그램 풀 종료와 독립적으로 프로그램을 실행할 수 있는지 확인합니다.
경로와 파일 이름이 올바로 지정되어 있는지 확인
시작, 제어판을 차례로 클릭한 다음 관리 도구를 클릭합니다.
IIS(인터넷 정보 서비스) 관리자를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다.
연결 창에서 서버 이름을 확장합니다.
응용 프로그램 풀을 클릭합니다. 서버의 응용 프로그램 풀 목록이 가운데 창에 표시됩니다.
가운데 창에서 확인할 종료 실행 파일이 있는 응용 프로그램 풀을 한 번 클릭합니다.
작업 창에서 고급 설정을 클릭합니다. 고급 설정 창이 나타납니다.
오류 급증 시 보호 기능 섹션까지 아래로 스크롤합니다.
종료 실행 파일 항목을 찾고 오른쪽의 경로와 파일 이름을 확인합니다. 경로와 파일 이름이 올바른지 확인합니다.
[확인]을 클릭합니다.
종료 실행 파일의 액세스 제어 목록 확인
권한이 상승된 명령 프롬프트 창을 엽니다. [시작]을 클릭하고 [모든 프로그램]을 가리킨 다음, [보조프로그램]을 클릭하고 [명령 프롬프트]를 마우스 오른쪽 단추로 클릭한 이후 [관리자 권한으로 실행]을 클릭합니다.
start explorer를 입력합니다.
Windows 탐색기를 사용하여 종료 실행 파일을 찾습니다.
파일을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 실행 파일 속성 대화 상자가 나타납니다.
보안 탭을 클릭합니다.
그룹 또는 사용자 이름: 창에서 SYSTEM이 표시되어 있는지 확인합니다. 표시되지 않는 경우 편집을 클릭하여 시스템 계정을 추가합니다.
SYSTEM에 대한 사용 권한 창에서 시스템 계정이 최소한 종료 실행 파일에 대한 읽기 및 실행 권한을 가지고 있는지 확인합니다.
프로그램을 독립적으로 실행할 수 있는지 확인
실행 프로그램을 응용 프로그램 풀 종료 이벤트와 별개로 실행해 봅니다. 응용 프로그램 풀 종료와 독립적으로 프로세스를 실행할 수 있는 경우 WAS에서 응용 프로그램 풀이 자동으로 사용하지 않도록 설정될 때 프로세스가 제대로 실행되어야 합니다.
Target | Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool |
Category | Alert |
Enabled | True |
Alert Generate | False |
Remotable | True |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.Server.IIS.6.2.WarningAndErrorEventProvider | Default |
Filter | ConditionDetection | Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool.EventFilter | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription | Default |
<Rule ID="Microsoft.Windows.InternetInformationServices.6.2.WAS.did.not.run.the.automatic.shutdown.executable.for.application.pool" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.Windows.Server.IIS.6.2.WarningAndErrorEventProvider">
<LogName>System</LogName>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool.EventFilter">
<Expression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(5054|5091)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-WAS</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.6.2.WAS.did.not.run.the.automatic.shutdown.executable.for.application.pool.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>