Partilhar via


Publicação de metadados

Os serviços WCF (Windows Communication Foundation) disponibilizam metadados através de um ou mais endpoints de metadados. A publicação de metadados de serviço disponibiliza os metadados usando protocolos padronizados, como solicitações WS-MetadataExchange (MEX) e 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 serviço System.ServiceModel.Description.ServiceMetadataBehavior, pode-se expor interfaces de metadados que suportam o protocolo MEX ou respondem a solicitações HTTP/GET.

O System.ServiceModel.Description.ServiceMetadataBehavior usa um WsdlExporter para exportar metadados de todos os endpoints 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.

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. Também pode usar o System.ServiceModel.Description.ServiceMetadataExtension para obter os metadados do serviço em tempo de execução, acedendo à ServiceMetadataExtension.Metadata propriedade.

Pontos de Extremidade de Metadados do 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. WS-MetadataExchange endpoints, ou endpoints MEX, podem usar uma das quatro ligações padrão que os métodos de fábrica estáticos expõem na classe MetadataExchangeBindings para corresponder às ligaçõ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 propriedade HttpGetEnabled de System.ServiceModel.Description.ServiceMetadataBehavior para true. Você também pode configurar um endpoint de metadados que usa HTTPS, definindo a propriedade HttpsGetEnabled no System.ServiceModel.Description.ServiceMetadataBehavior como true.

Na presente seção

Como: Publicar Metadados para um Serviço Usando um Ficheiro de Configuração Demonstra como configurar um serviço WCF para publicar metadados de modo a que os clientes possam recuperar os metadados usando um pedido WS-MetadataExchange ou HTTP/GET usando a ?wsdl cadeia de consulta.

Como: Publicar Metadados para um Serviço Usando Código Demonstra como permitir a publicação de metadados para um serviço WCF em código, para que os clientes possam recuperar os metadados usando um pedido WS-MetadataExchange ou HTTP/GET usando a ?wsdl cadeia de consulta.

Referência

ServiceMetadataBehavior

IMetadataExchange

ServiceMetadataExtension

MetadataExchangeBindings

Ver também