Publicação de metadados

Os serviços WCF (Windows Communication Foundation) publicam metadados publicando um ou mais pontos de extremidade de metadados. A publicação de metadados do serviço torna os metadados disponíveis 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 na medida em que têm um endereço, uma associação e um contrato, e podem ser adicionados a um host de serviço por meio de configuração ou código imperativo.

Publicação de pontos de extremidade de metadados

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

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

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

Pontos de extremidade de metadados 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 IMetadataExchange contrato de serviço. WCF inclui uma IMetadataExchange interface com este nome de contrato de serviço que você pode usar como parte do modelo de programação WCF. Os pontos de extremidade WS-MetadataExchange, ou pontos de extremidade MEX, podem usar uma das quatro associações padrão que os métodos estáticos de fábrica expõem na MetadataExchangeBindings classe para corresponder às associações padrão usadas pelas ferramentas WCF, como Svcutil.exe. Você também pode configurar pontos de extremidade de metadados 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 a solicitações HTTP/GET, defina a HttpGetEnabled propriedade em System.ServiceModel.Description.ServiceMetadataBehavior como true. Você também pode configurar um ponto de extremidade de metadados que usa HTTPS definindo a HttpsGetEnabled propriedade no System.ServiceModel.Description.ServiceMetadataBehavior para true.

Nesta Secçã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 ?wsdl cadeia de caracteres de consulta.

Como: Publicar metadados para um serviço usando código
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 ?wsdl cadeia de caracteres de consulta.

Referência

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Consulte também