메타데이터 게시
WCF(Windows Communication Foundation) 서비스는 하나 이상의 메타데이터 끝점을 게시하여 메타데이터를 게시합니다. 서비스 메타데이터를 게시하면 WS-MetadataExchange(MEX) 및 HTTP/GET 요청과 같이 표준화된 프로토콜을 통해 메타데이터를 사용할 수 있습니다. 메타데이터 끝점은 주소, 바인딩 및 계약에 포함된 다른 서비스 끝점과 유사하며 구성 또는 명령 코드를 통해 서비스 호스트에 추가할 수 있습니다.
메타데이터 끝점 게시
WCF 서비스의 메타데이터 끝점을 게시하려면 먼저 ServiceMetadataBehavior 서비스 동작을 해당 서비스에 추가해야 합니다. System.ServiceModel.Description.ServiceMetadataBehavior 인스턴스를 추가하면 서비스가 메타데이터 끝점을 노출할 수 있습니다. System.ServiceModel.Description.ServiceMetadataBehavior 서비스 동작을 추가하면 MEX 프로토콜을 지원하거나 HTTP/GET 요청에 응답하는 메타데이터 끝점을 노출할 수 있습니다.
System.ServiceModel.Description.ServiceMetadataBehavior는 WsdlExporter를 사용하여 서비스에 있는 모든 서비스 끝점에 대한 메타데이터를 내보냅니다. 서비스에서 메타데이터 내보내기에 대한 자세한 내용은 메타데이터 내보내기 및 가져오기를 참조하십시오.
System.ServiceModel.Description.ServiceMetadataBehavior¢¥Â ServiceMetadataExtension 인스턴스를 서비스 호스트에 대한 확장으로 추가합니다. System.ServiceModel.Description.ServiceMetadataExtension은 메타데이터 게시 프로토콜에 대한 구현을 제공합니다. 또한 System.ServiceModel.Description.ServiceMetadataExtension을 통해 System.ServiceModel.Description.ServiceMetadataExtension.Metadata 속성에 액세스하여 서비스 메타데이터를 런타임에 가져올 수 있습니다.
MEX 메타데이터 끝점
MEX 프로토콜을 사용하는 메타데이터 끝점을 추가하려면 IMetadataExchange 서비스 계약을 사용하는 서비스 호스트에 서비스 끝점을 추가합니다. WCF에는 WCF 프로그래밍 모델의 일부로 사용할 수 있는 이 서비스 계약 이름을 가진 IMetadataExchange 인터페이스가 들어 있습니다. WS-MetadataExchange 끝점 또는 MEX 끝점은 MetadataExchangeBindings 클래스에서 정적 팩터리 메서드가 노출하는 4개의 기본 바인딩 중 하나를 사용하여 Svcutil.exe와 같이 WCF 도구에서 사용하는 기본 바인딩과 일치시킬 수 있습니다. 또한 사용자 지정 바인딩을 사용하여 MEX 메타데이터 끝점을 구성할 수도 있습니다.
HTTP GET 메타데이터 끝점
HTTP/GET 요청에 응답하는 서비스에 메타데이터 끝점을 추가하려면 System.ServiceModel.Description.ServiceMetadataBehavior의 HttpGetEnabled 속성을 true로 설정합니다. 또한 System.ServiceModel.Description.ServiceMetadataBehavior의 HttpsGetEnabled 속성을 true로 설정하여 HTTPS를 사용하는 메타데이터 끝점을 구성할 수도 있습니다.
단원 내용
- 방법: 구성 파일을 사용하여 서비스의 메타데이터 게시
WCF 서비스가 메타데이터를 게시하여 클라이언트가 WS-MetadataExchange를 사용하는 메타데이터 또는 ?wsdl 쿼리 문자열을 사용하는 HTTP/GET 요청을 검색할 수 있도록 구성하는 방법을 보여 줍니다.
- 방법: 코드를 사용하여 서비스에 대한 메타데이터 게시
클라이언트가 WS-MetadataExchange를 사용하는 메타데이터 또는 ?wsdl 쿼리 문자열을 사용하는 HTTP/GET 요청을 검색할 수 있도록 메타데이터가 코드에서 WCF 서비스를 게시할 수 있는 방법을 보여 줍니다.
참조
ServiceMetadataBehavior
IMetadataExchange
ServiceMetadataExtension
MetadataExchangeBindings