다음을 통해 공유


메타데이터 게시

WCF(Windows Communication Foundation) 서비스는 하나 이상의 메타데이터 엔드포인트를 게시하여 메타데이터를 게시합니다. 서비스 메타데이터를 게시하면 WS-MetadataExchange(MEX) 및 HTTP/GET 요청과 같이 표준화된 프로토콜을 통해 메타데이터를 사용할 수 있습니다. 메타데이터 엔드포인트는 주소, 바인딩 및 계약에 포함된 다른 서비스 엔드포인트와 유사하며 구성 또는 명령 코드를 통해 서비스 호스트에 추가할 수 있습니다.

메타데이터 엔드포인트 게시

WCF 서비스의 메타데이터 엔드포인트를 게시하려면 먼저 ServiceMetadataBehavior 서비스 동작을 해당 서비스에 추가해야 합니다. ph x="1" /> 인스턴스를 추가하면 서비스가 메타데이터 엔드포인트를 노출할 수 있습니다. ph x="1" /> 서비스 동작을 추가하면 MEX 프로토콜을 지원하거나 HTTP/GET 요청에 응답하는 메타데이터 엔드포인트를 노출할 수 있습니다.

System.ServiceModel.Description.ServiceMetadataBehaviorWsdlExporter를 사용하여 서비스의 모든 서비스 엔드포인트에 대한 메타데이터를 내보냅니다. 서비스에서 메타데이터를 내보내는 방법에 대한 자세한 내용은 메타데이터 내보내기 및 가져오기를 참조하세요.

System.ServiceModel.Description.ServiceMetadataBehavior A ServiceMetadataExtension 인스턴스를 서비스 호스트에 대한 확장으로 추가합니다. System.ServiceModel.Description.ServiceMetadataExtension은 메타데이터 게시 프로토콜에 대한 구현을 제공합니다. 또한 System.ServiceModel.Description.ServiceMetadataExtension을 통해 ServiceMetadataExtension.Metadata 속성에 액세스하여 서비스 메타데이터를 런타임에 가져올 수 있습니다.

MEX 메타데이터 엔드포인트

MEX 프로토콜을 사용하는 메타데이터 엔드포인트를 추가하려면 IMetadataExchange 서비스 계약을 사용하는 서비스 호스트에 서비스 엔드포인트를 추가하세요. WCF에는 WCF 프로그래밍 모델의 일부로 사용할 수 있는 이 서비스 계약 이름을 가진 IMetadataExchange 인터페이스가 포함되어 있습니다. WS-MetadataExchange 엔드포인트 또는 MEX 엔드포인트는 MetadataExchangeBindings 클래스에서 정적 팩터리 메서드가 노출하는 4개의 기본 바인딩 중 하나를 사용하여 Svcutil.exe와 같이 WCF 도구에서 사용하는 기본 바인딩과 일치시킬 수 있습니다. 또한 사용자 지정 바인딩을 사용하여 MEX 메타데이터 엔드포인트를 구성할 수도 있습니다.

HTTP GET 메타데이터 엔드포인트

HTTP/GET 요청에 응답하는 서비스에 메타데이터 엔드포인트를 추가하려면 HttpGetEnabledSystem.ServiceModel.Description.ServiceMetadataBehavior 속성을 true로 설정합니다. 또한 HttpsGetEnabledSystem.ServiceModel.Description.ServiceMetadataBehavior 속성을 true로 설정하여 HTTPS를 사용하는 메타데이터 엔드포인트를 구성할 수도 있습니다.

섹션 내용

방법: 구성 파일을 사용하여 서비스의 메타데이터 게시
WCF 서비스가 메타데이터를 게시하여 클라이언트가 WS-MetadataExchange를 사용하는 메타데이터 또는 ?wsdl 쿼리 문자열을 사용하는 HTTP/GET 요청을 검색할 수 있도록 구성하는 방법을 보여 줍니다.

방법: 코드를 사용하여 서비스에 대한 메타데이터 게시
클라이언트가 WS-MetadataExchange를 사용하는 메타데이터 또는 ?wsdl 쿼리 문자열을 사용하는 HTTP/GET 요청을 검색할 수 있도록 메타데이터가 코드에서 WCF 서비스를 게시할 수 있는 방법을 보여 줍니다.

참조

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

참고 항목