Compartilhar via


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 configuração ou código imperativo.

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 System.ServiceModel.Description.ServiceMetadataBehavior instância permite que seu serviço exponha endpoints 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 o System.ServiceModel.Description.ServiceMetadataExtension para obter os metadados do serviço em 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 IMetadataExchange interface 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 serviço que responde às solicitações HTTP/GET, defina a propriedade HttpGetEnabled em System.ServiceModel.Description.ServiceMetadataBehavior para true. Você também pode configurar um ponto de extremidade de metadados que usa HTTPS ao definir a propriedade HttpsGetEnabled no System.ServiceModel.Description.ServiceMetadataBehavior como 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 ?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