다음을 통해 공유


방법: 관리되는 응용 프로그램에서 WCF 서비스 호스팅

관리되는 응용 프로그램 내에서 서비스를 호스팅하려면 관리되는 응용 프로그램 코드 내에 서비스에 대한 코드를 포함하고, 코드에서 명령적으로 또는 구성을 통해 선언적으로 서비스에 대한 끝점을 정의한 다음 ServiceHost의 인스턴스를 만듭니다.

메시지 받기를 시작하려면 ServiceHost에서 Open을 호출합니다. 이렇게 하면 서비스에 대한 수신기가 만들어지고 열립니다. 관리되는 응용 프로그램이 호스팅 작업을 직접 수행하므로 이런 방식으로 서비스를 호스팅하는 것을 "자체 호스팅"이라고 합니다. 서비스를 닫으려면 ServiceHost에서 System.ServiceModel.Channels.CommunicationObject.Close를 호출합니다.

서비스는 관리되는 Windows 서비스, IIS(인터넷 정보 서비스) 또는 WAS(Windows Process Activation Service)에서 호스팅될 수도 있습니다. 서비스 호스팅 옵션에 대한 자세한 내용은 서비스 호스팅을 참조하십시오.

관리되는 응용 프로그램에서의 서비스 호스팅은 배포하는 데 최소한의 인프라를 필요로 하므로 가장 유연한 옵션입니다. 관리되는 응용 프로그램에서의 서비스 호스팅에 대한 자세한 내용은 관리되는 응용 프로그램에서의 호스팅을 참조하십시오.

다음 절차에서는 콘솔 응용 프로그램에서 자체 호스팅된 서비스를 구현하는 방법을 보여 줍니다. 이 절차의 기반이 되는 작업 예제에 대해서는 Self Host Sample을 참조하십시오.

자체 호스팅된 서비스를 만들려면

  1. 구성을 통해 서비스에 대한 서비스 끝점을 정의합니다.

  2. 서비스에 대한 인터페이스를 만듭니다. 방법: Windows Communication Foundation 서비스 계약 정의를 참조하십시오.

  3. 서비스 유형을 만들 인터페이스를 구현합니다. 방법: Windows Communication Foundation 서비스 계약 구현를 참조하십시오. 다음 예제에서는 구현을 MathService라고 합니다.

  4. 서비스를 시작할 메서드를 만듭니다. 이 예제에서는 Main 메서드가 사용됩니다.

  5. 서비스의 기본 주소로 Uri 클래스의 인스턴스를 만듭니다. 이 예제에서는 ConfigurationManager 클래스의 정적 AppSettings 속성을 사용하여 기본 주소를 선택합니다. 프로젝트에 System.Configuration.dll에 대한 참조를 추가합니다. 그런 다음 구성 파일에서 <appSettings> 요소 아래에 호스트 응용 프로그램에 대한 기본 주소를 설정할 수 있습니다.

  6. 응용 프로그램 구성 파일에서 <appSettings> 요소를 추가합니다. 그런 다음 해당 key 특성과 함께 <add> 요소를 사용합니다. 이 경우 key 값은 이전 단계에서 AppSettings 속성에 전달된 매개 변수와 일치합니다.

  7. ServiceHost 클래스의 인스턴스를 만들어 서비스 형식 및 기본 주소 URI(Uniform Resource Identifier)를 나타내는 TypeServiceHost에 전달합니다.

  8. ServiceHost 개체에서 Open 메서드를 호출합니다.

구성에서 끝점을 만들려면

  1. 동일한 디렉터리에 구성 파일을 서비스 어셈블리로 추가합니다. 구성에 대한 자세한 내용은 Windows Communication Foundation 서비스에 대한 바인딩 구성을 참조하십시오.

예제

다음 예제에서는 ServiceHost 개체를 만들어 CalculatorService 형식의 서비스를 호스팅한 다음 ServiceHost에서 Open 메서드를 호출합니다. 기본 주소는 코드에 제공되고, 상대 경로는 구성에 제공됩니다.

ServiceMetadata Utility Tool (svcutil.exe)을 사용하여 서비스에 대한 클라이언트를 만들려면 끝점에 대한 바인딩에서 HTTP 프로토콜을 사용해야 합니다. 바인딩에 대한 자세한 내용은 바인딩을 사용하여 서비스 및 클라이언트 구성시스템 제공 바인딩을 참조하십시오. 이 항목의 기반이 되는 전체 샘플에 대해서는 Self-Host 샘플을 참조하십시오.

참고 항목

작업

방법: IIS에서의 WCF 서비스 호스팅
방법: Windows Communication Foundation 서비스 계약 정의
방법: Windows Communication Foundation 서비스 계약 구현

참조

Uri
AppSettings
ConfigurationManager

개념

서비스 호스팅
바인딩을 사용하여 서비스 및 클라이언트 구성
시스템 제공 바인딩

기타 리소스

Self Host
Service Metadata Utility Tool (svcutil.exe)