다음을 통해 공유


자동 시작 기능

AppFabric의 자동 시작 기능은 Windows 7 및 Windows Server 2008 R2에 포함된 IIS(인터넷 정보 서비스) 7.5 자동 시작 기능을 기반으로 빌드되었습니다. IIS에서 IIS 서비스가 시작될 때 응용 프로그램 풀과 전체 또는 일부 응용 프로그램이 자동으로 시작되도록 구성할 수 있습니다. AppFabric 자동 시작 기능은 응용 프로그램이 시작될 때 응용 프로그램 내에서 전체 또는 일부 서비스가 자동으로 시작되게 구성할 수 있도록 이 기능을 확장합니다.

자동 시작 기능의 이점

서비스에 자동 시작 기능을 사용하도록 설정하면 서비스가 속한 응용 프로그램이 시작된 직후, 서비스가 클라이언트에서 첫 번째 WCF 메시지를 수신하기 전에 서비스가 가동되고 실행됩니다. 따라서 서비스는 이미 초기화되어 있으므로 첫 번째 메시지를 빠르게 처리합니다. 예를 들어, 처음 생성될 때 .NET Framework 캐시 데이터 구조를 채우려면 서비스가 데이터베이스에 연결하여 수백 개의 데이터 행을 읽어야 한다고 가정합니다. 서비스가 실제 작업을 시작할 준비가 될 때까지 초기화 처리에 오랜 시간이 걸립니다. 이 경우 자동 시작를 사용하면 서비스가 첫 번째 호출을 수신하기 전에 초기화됩니다.

IIS의 HTTP.SYS 구성 요소는 HTTP 요청을 처리하고 WAS(Windows Process Activation Service)는 IIS에 포함된 사용자 지정 WCF 수신기 어댑터를 사용하여 TCP, 명명된 파이프 및 MSMQ 요청을 처리합니다. 수신기 어댑터는 HTTP 이외 프로토콜을 사용하는 서비스와 WAS 사이에 통신을 설정합니다. 다른 프로토콜을 통해 수신된 메시지 처리를 지원하려면 사용자 지정 수신기 어댑터 및 다른 지원 모듈을 개발해야 하며, 이는 복잡한 작업이 될 수 있습니다. 수신기 어댑터에 대한 자세한 내용은 수신기 어댑터(영문)(https://go.microsoft.com/fwlink/?LinkId=160359)를 참조하십시오. 자동 시작 지원을 사용하면 임의의 프로토콜을 지원하는 응용 프로그램을 IIS에 배포할 수 있습니다. 이러한 배포된 응용 프로그램에 대해 자동 시작를 사용하도록 설정하면 WAS가 해당 응용 프로그램을 활성화하고 작업자 프로세스에서 활성 상태로 유지합니다.

자동 시작 시나리오

자동 시작 기능을 사용하는 서비스는 다음과 같은 시나리오를 지원합니다.

  • 응용 프로그램이 배포되는 컴퓨터가 다시 부팅됩니다. IIS, WAS, 응용 프로그램 풀, 응용 프로그램 및 서비스가 컴퓨터와 함께 자동으로 시작되도록 구성됩니다. 이 시나리오에서 서비스는 응용 프로그램이 다시 시작될 때 자동으로 시작됩니다. 응용 프로그램이 모든 서비스를 자동으로 시작하도록 구성되면 응용 프로그램 내의 모든 서비스가 자동으로 시작되고, 그렇지 않으면 Web.config 파일에 지정된 서비스만 시작됩니다.

  • WS-Discovery 알림 프로토콜과 같은 일부 프로토콜을 사용하려면 응용 프로그램을 항상 사용할 수 있어야 합니다. 응용 프로그램과 응용 프로그램 내 서비스에 대해 자동 시작을 사용하도록 설정하면 서비스가 포함된 응용 프로그램이 시작될 때마다 Windows Server AppFabric 자동 시작 기능이 서비스를 자동으로 시작합니다.

  • 서비스가 속한 응용 프로그램 풀은 지정된 기간 내에 너무 많은 작업자 프로세스가 비정상 상태가 되었는지 검색하고 오류 급증 시 보호 기능 프로세스를 시작합니다. 프로세스가 지정된 기간 내에 구성 가능한 횟수보다 더 많이 실패할 경우 오류 급증 시 보호 기능 임계값을 초과하면 응용 프로그램과 해당 서비스가 다시 시작되지 않는다는 점에서 자동 시작 기능은 오류 급증 시 보호 기능을 지원합니다.

컴퓨터 다시 시작 시나리오

다음 목록에는 자동 시작 기능이 지원하는 컴퓨터 다시 시작 샘플 시나리오에 관련된 일반 단계가 포함되어 있습니다.

  1. 서비스가 자동으로 시작되도록 구성될 경우 WAS(Windows Process Activation Service)가 시작됩니다. 관리 도구에서 서비스 애플릿을 사용하여 WAS를 구성할 수 있습니다.

  2. WAS는 자동으로 시작하도록 구성된 모든 응용 프로그램 풀을 시작합니다. 이러한 응용 프로그램 풀에 대한 startMode 설정은 ApplicationHost.config 파일에서 AlwaysRunning으로 설정됩니다.

    <applicationPools>
        <add name=”MyAppPool” startMode=”AlwaysRunning” />
    </applicationPools>
    
  3. WAS 내의 응용 프로그램 관리자가 자동으로 시작하도록 구성된 모든 응용 프로그램을 로드합니다. ApplicationHost.config 파일에서 이러한 응용 프로그램에 대한 serviceAutoStartEnabled 특성은 true로 설정되어 있습니다.

    <sites>
        <site name="MySite" id="1">
            <application path="/"  serviceAutoStartEnabled=”true” serviceAutoStartProvider=”Service” serviceAutoStartMode=”All/Custom”>
                <virtualDirectory path="/" physicalPath="C:\MySite" />
            </application>
        </site>
    </sites>                
    
  4. 응용 프로그램 초기화 프로세스에서는 자동으로 시작하도록 구성된 서비스를 시작하는 자동 시작 모듈을 호출합니다.

    serviceAutoStartProvider 특성은 사용자 지정 개체를 시작하는 데 사용할 수 있는 IIS 확장 지점입니다. Windows Server AppFabric 설치 프로그램은 서비스 공급자를 설치하고 IIS 스키마를 확장하여 serviceAutoStartMode 특성을 추가합니다.

    응용 프로그램의 serviceAutoStartModeAll로 설정하면 응용 프로그램의 모든 서비스가 시작됩니다. 응용 프로그램의 serviceAutoStartMode 설정을 Custom으로 설정하면 Web.config 파일에 지정된 서비스만 시작됩니다.

    자동 시작 모듈은 relativeVirtualPath 설정 값을 사용하여 서비스를 로드합니다. 다음 구성은 두 가지 서비스에 대한 relativeVirtualPath 설정이 구성되어 있는 Web.config 파일의 일부입니다. 서비스의 relativeVirtualPath는 서비스가 포함된 응용 프로그램에 상대적인 서비스 경로입니다.

    // a sample Web.config fragment with two services configured to use the auto-start feature.
    <Microsoft.ProcessServer.Hosting>
        <serviceAutoStart>
            <add relativeVirtualPath =”/Calendar/Appointments.xamlx” >
            <add relativeVirtualPath =”/BookStore/ShoppingCart.svc” >
        </serviceAutoStart>
    </Microsoft.ProcessServer.Hosting>
    

    서비스의 자동 시작 설정은 Web.config 파일에 저장되고 응용 프로그램 풀과 응용 프로그램의 자동 시작 설정은 ApplicationHost.config 파일에 저장됩니다.

자동 시작 구성

AppFabric에서 제공하는 IIS 관리자 확장 또는 cmdlet을 사용하여 WCF 또는 WF 서비스에 대해 자동 시작 기능을 구성할 수 있습니다. 자동 시작 기능을 구성하는 단계별 지침은 자동 시작 구성 섹션의 IIS 관리자를 사용하여 자동 시작 구성Windows Server AppFabric Cmdlet을 사용하여 자동 시작 구성 항목을 참조하십시오.

참고

서비스에 자동 시작 기능을 사용하도록 설정하면 IIS가 응용 프로그램 풀 및 응용 프로그램 풀을 사용하는 응용 프로그램에 대한 유휴 시간 제한 설정을 무시합니다. 응용 프로그램 풀이 유휴 시간 제한 값보다 더 오랫동안 유휴 상태가 된 후에도 응용 프로그램 풀과 연결된 작업자 프로세스는 메모리에 남아 있습니다.

경고

서비스에 대한 초기화 코드가 비효율적으로 작성되고 초기화에 시간이 오래 걸리면 IIS 시작 기간이 만료되고 현재 상태에서 프로세스가 종료될 수 있습니다. 따라서, 2개 이상의 CPU가 있는 컴퓨터에서 서비스가 실행되는 경우 서비스에 대한 초기화 코드 내에 여러 스레드를 사용하도록 설계하는 것이 좋습니다.

참고 항목

개념

자동 시작 구성

  2011-12-05