다음을 통해 공유


방법: 구성 파일을 사용하여 서비스의 메타데이터 게시

이 항목은 WCF(Windows Communication Foundation) 서비스의 메타데이터 게시를 보여 주는 두 가지 방법 중 하나입니다. 서비스에서 메타데이터를 게시하는 방법을 지정하는 두 가지 방법은 구성 파일을 사용하는 방법과 코드를 사용하는 방법입니다. 이 항목에서는 구성 파일을 사용하여 서비스의 메타데이터를 게시하는 방법을 보여 줍니다. 코드에서 메타데이터를 게시하는 방법에 대한 자세한 내용은 방법: 코드를 사용하여 서비스에 대한 메타데이터 게시를 참조하십시오. 메타데이터를 게시하면 클라이언트에서 WS-Transfer GET 요청을 사용하는 메타데이터 또는 ?wsdl 쿼리 문자열을 사용하는 HTTP/GET 요청을 검색할 수 있습니다. 코드가 작동 중인지 확인하려면 기본 WCF 서비스를 만듭니다. 편의상 다음 코드로 된 기본 자체 호스팅 서비스가 제공됩니다.

이 서비스는 구성 파일을 사용하여 구성된 자체 호스팅 서비스입니다. 다음 구성 파일은 이 항목에 있어서 시작 지점입니다.

응용 프로그램 구성 파일을 사용하여 WCF 서비스의 메타데이터를 게시하려면

  1. App.config 파일 내에서 </services> 요소를 닫은 후 <behaviors> 요소를 만듭니다.

  2. <behaviors> 요소 내에서 <serviceBehaviors> 요소를 추가합니다.

  3. <behavior> 요소를 <serviceBehaviors> 요소에 추가하고 <behavior> 요소의 name 특성에 값을 지정합니다.

  4. <serviceMetadata> 요소를 <behavior> 요소에 추가합니다. httpGetEnabled 특성을 true로 설정하고 policyVersion 특성을 Policy15로 설정합니다. httpGetEnabled를 사용하면 서비스가 HTTP GET 요청으로 수행된 메타데이터 요청에 응답할 수 있습니다. policyVersion에 따라 서비스는 메타데이터를 생성할 때 WS-Policy 1.5를 준수합니다.

  5. behaviorConfiguration 특성을 <service> 요소에 추가하고 다음 코드 예제에서처럼 1단계에 추가된 <behavior> 요소의 name 특성을 지정합니다.

  6. 다음 코드 예제에서처럼 계약이 IMetadataExchange로 설정된 하나 이상의 <endpoint> 요소를 추가합니다.

  7. 6단계에 추가된 메타데이터 끝점에 대해 binding 특성을 다음 중 하나로 설정합니다.

    • HTTP 게시의 경우 mexHttpBinding
    • HTTPS 게시의 경우 mexHttpsBinding
    • 명명된 파이프 게시의 경우 mexNamedPipeBinding
    • TCP 게시의 경우 mexTcpBinding
  8. 6단계에 추가된 메타데이터 끝점에 대해 주소를 다음과 같이 설정합니다.

    • 기본 주소가 메타데이터 바인딩과 동일한 경우 호스트 응용 프로그램의 기본 주소를 게시 지점으로 사용하는 빈 문자열
    • 호스트 응용 프로그램에 기본 주소가 있는 경우 상대 주소
    • 절대 경로
  9. 콘솔 응용 프로그램을 빌드하고 실행합니다.

  10. Internet Explorer를 사용하여 서비스의 기본 주소(이 샘플에서는 https://localhost:8001/MetadataSample)를 찾아 메타데이터 게시가 설정되어 있는지 확인합니다. 그렇지 않으면 "이 서비스에 대한 메타데이터 게시는 현재 사용할 수 없습니다."라는 메시지가 결과 페이지의 맨 위에 표시됩니다.

예제

다음 코드 예제에서는 기본 WCF 서비스의 구현 및 서비스의 메타데이터를 게시하는 구성 파일을 보여 줍니다.

참고 항목

작업

방법: 관리되는 응용 프로그램에서 WCF 서비스 호스팅
방법: 코드를 사용하여 서비스에 대한 메타데이터 게시

참조

ServiceMetadataBehavior

개념

메타데이터 아키텍처 개요
메타데이터 사용

기타 리소스

Self-Host