Publicando metadados

Os serviços WCF (Windows Communication Foundation) publicam metadados publicando um ou mais pontos de extremidade de metadados. Os metadados do serviço de publicação disponibilizam os metadados usando protocolos padronizados, como WS-MetadataExchange (MEX) e solicitações HTTP/GET. Os pontos de extremidade de metadados são semelhantes a outros pontos de extremidade de serviço, pois têm um endereço, uma associação e um contrato e podem ser adicionados a um host de serviço por meio de um código imperativo ou de configuração.

Publicando pontos de extremidade de metadados

Para publicar pontos de extremidade de metadados para um serviço WCF, primeiro você deve adicionar o comportamento do serviço ServiceMetadataBehavior ao serviço. Adicionar uma instância System.ServiceModel.Description.ServiceMetadataBehavior permite que seu serviço exponha pontos de extremidade de metadados. Depois de adicionar o comportamento do serviço System.ServiceModel.Description.ServiceMetadataBehavior, você poderá expor pontos de extremidade de metadados que dão suporte ao protocolo MEX ou que respondem a solicitações HTTP/GET.

O System.ServiceModel.Description.ServiceMetadataBehavior usa um WsdlExporter para exportar metadados para todos os pontos de extremidade de serviço no seu serviço. Para obter mais informações sobre como exportar metadados de um serviço, consulte Exportando e importando metadados.

System.ServiceModel.Description.ServiceMetadataBehavior adiciona a instância ServiceMetadataExtension como uma extensão ao host de serviço. System.ServiceModel.Description.ServiceMetadataExtension fornece a implementação para os protocolos de publicação de metadados. Você também pode usar System.ServiceModel.Description.ServiceMetadataExtension para obter os metadados do serviço no tempo de execução acessando a propriedade ServiceMetadataExtension.Metadata.

Pontos de extremidade de metadados de MEX

Para adicionar pontos de extremidade de metadados que usam o protocolo MEX, adicione pontos de extremidade de serviço ao host de serviço que usa o contrato de serviço IMetadataExchange. O WCF inclui uma interface IMetadataExchange com esse nome de contrato de serviço que você pode usar como parte do modelo de programação do WCF. Os pontos de extremidade WS-MetadataExchange, ou pontos de extremidade de MEX, podem usar uma das quatro associações padrão que os métodos de fábrica estáticos expõem na classe MetadataExchangeBindings para corresponder às associações padrão usadas por ferramentas do WCF, como Svcutil.exe. Você também pode configurar pontos de extremidade de metadados de MEX usando sua própria associação personalizada.

Pontos de extremidade de metadados HTTP GET

Para adicionar um ponto de extremidade de metadados ao seu serviço que responde às solicitações HTTP/GET, defina a propriedade HttpGetEnabled como System.ServiceModel.Description.ServiceMetadataBehavior para true. Você também pode configurar um ponto de extremidade de metadados que usa HTTPS definindo a propriedade HttpsGetEnabled como System.ServiceModel.Description.ServiceMetadataBehavior para true.

Nesta seção

Como: publicar metadados para um serviço usando um arquivo de configuração
Demonstra como configurar um serviço WCF para publicar metadados para que os clientes possam recuperar os metadados usando um WS-MetadataExchange ou uma solicitação HTTP/GET usando a cadeia de caracteres de consulta ?wsdl.

Como: publicar metadados utilizando código para um serviço
Demonstra como habilitar a publicação de metadados para um serviço WCF no código para que os clientes possam recuperar os metadados usando um WS-MetadataExchange ou uma solicitação HTTP/GET usando a cadeia de caracteres de consulta ?wsdl.

Referência

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Confira também