다음을 통해 공유


<serviceHostingEnvironment>

이 요소는 특정 전송을 위해 서비스 호스팅 환경에서 인스턴스화하는 형식을 정의합니다. 이 요소가 비어 있으면 기본 형식이 사용됩니다.

<system.serviceModel>
  <serviceHostingEnvironment>

<serviceHostingEnvironment>
         aspNetCompatibilityEnabled="Boolean"
       minFreeMemoryPercentageToActivateService="Integer"
     <baseAddressPrefixFilters>
                <add prefix="string"/>
          </baseAddressPrefixFilters>
     <transportConfigurationTypes>
        <add name="String" 
             transportConfigurationType="String" />
     </transportConfigurationTypes>
</serviceHostingEnvironment>

특성 및 요소

특성

특성 설명

aspNetCompatibilityEnabled

현재 응용 프로그램에 ASP.NET 호환 모드를 설정했는지 여부를 나타내는 부울 값입니다. 기본값은 false입니다.

이 특성이 true로 설정되면 WCF(Windows Communication Foundation) 서비스에 대한 요청이 ASP.NET HTTP 파이프라인을 통해 전달되며 HTTP가 아닌 프로토콜을 통한 통신이 허용되지 않습니다. 자세한 내용은 WCF Services and ASP.NET을 참조하십시오.

minFreeMemoryPercentageToActivateService

WCF 서비스를 활성화하기 전에 시스템에서 사용할 수 있는 최소 메모리를 지정하는 정수입니다.

경고

WCF 서비스의 web.config 파일에서 부분 신뢰와 함께 이 특성을 지정하면 서비스가 실행될 때 SecurityException이 발생합니다.

자식 요소

요소 설명

<baseAddressPrefixFilters>

서비스 호스트에서 사용하는 기본 주소에 대한 접두사 필터를 지정하는 구성 요소 컬렉션입니다.

<transportConfigurationTypes>

특정 전송의 형식을 식별하는 구성 요소의 컬렉션입니다.

부모 요소

요소 설명

serviceModel

모든 WCF(Windows Communication Foundation) 구성 요소의 루트 요소입니다.

설명

기본적으로 WCF 서비스는 호스팅된 응용프로그램 도메인(AppDomain)에서 ASP.NET과 함께 실행됩니다. 동일한 AppDomain에서 WCF와 ASP.NET을 함께 사용할 수 있더라도 WCF 요청은 기본적으로 ASP.NET HTTP 파이프라인에 의해 처리되지 않습니다. 따라서 ASP.NET 응용 프로그램 플랫폼의 여러 요소를 WCF 서비스에 사용할 수 없습니다. 이러한 요소는 다음과 같습니다.

  • ASP.NET 파일/URL 권한 부여
  • ASP.NET 가장
  • 쿠키 기반 세션 상태
  • HttpContext.Current
  • 사용자 지정 HttpModule을 통한 파이프라인 확장성

WCF 서비스가 ASP.NET 컨텍스트에서 작동해야 하고 이 서비스가 HTTP를 통해서만 통신하는 경우 WCF의 ASP.NET 호환 모드를 사용할 수 있습니다. 이 모드는 응용 프로그램 수준에서 aspNetCompatibilityEnabled 특성이 true로 설정되면 사용하도록 설정됩니다. 서비스 구현에서는 AspNetCompatibilityRequirementsAttribute 클래스를 사용하여 호환 모드에서 실행되는 기능을 선언해야 합니다. 호환 모드를 사용하는 경우 다음과 같습니다.

  • ASP.NET 파일/URL 권한 부여가 WCF 인증 전에 적용됩니다. 권한 부여 결정은 요청의 전송 수준 ID에 따라 달라집니다. 메시지 수준의 ID가 무시됩니다.
  • WCF 서비스 작업이 ASP.NET 가장 컨텍스트에서 실행되기 시작합니다. ASP.NET 가장 및 WCF 가장이 모두 특정 서비스에 사용하도록 설정되면 WCF 가장 컨텍스트가 적용됩니다.
  • HttpContext.Current는 WCF 서비스 코드에서 사용할 수 있으며, 서비스에서 HTTP가 아닌 끝점을 노출할 수 없습니다.
  • WCF 요청은 ASP.NET 파이프라인에서 처리됩니다. 들어오는 요청에서 동작하도록 구성된 HttpModule에서는 WCF 요청도 처리할 수 있습니다. 여기에는 사용자 지정 타사 모듈뿐만 아니라 SessionStateModule과 같은 ASP.NET 플랫폼 구성 요소가 포함될 수 있습니다.

예제

다음 코드 샘플에서는 ASP 호환 모드를 사용하도록 설정하는 방법을 보여 줍니다.

코드

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

참고 항목

참조

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

기타 리소스

Hosting
WCF Services and ASP.NET