Publicando e recuperando metadados em uma associação personalizada
O System.ServiceModel.Description.ServiceMetadataBehavior fornece suporte para adicionar ponto de extremidade de metadados a um serviço. Esses pontos de extremidade de metadados podem responder a solicitações HTTP GET em uma URL que tenha uma ?wsdl
querystring e a solicitações WS-Transfer GET, conforme definido na especificação WS-MetadataExchange (MEX). Os terminais MEX implementam o System.ServiceModel.Description.IMetadataExchange contrato.
Publicando metadados em uma associação personalizada
Os pontos de extremidade de metadados HTTP GET e os pontos de extremidade de metadados HTTPS GET são habilitados definindo as ServiceMetadataBehavior.HttpGetEnabled propriedades ou ServiceMetadataBehavior.HttpsGetEnabled como true
. As ligações para esses pontos de extremidade não podem ser configuradas.
O IMetadataExchange contrato, no entanto, pode ser usado com qualquer ponto de extremidade, incluindo aqueles que usam associações personalizadas, porque IMetadataExchange os pontos de extremidade são idênticos a qualquer outro ponto de extremidade de serviço do Windows Communication Foundation (WCF). Se você souber como modificar a configuração de uma associação fornecida pelo sistema ou como configurar um System.ServiceModel.Channels.CustomBinding, poderá configurar uma associação para uso com um IMetadataExchange ponto de extremidade.
Recuperando metadados em uma associação personalizada
Os metadados podem ser recuperados dos pontos de extremidade de metadados HTTP Get e HTTPS Get usando solicitações HTTP ou HTTPS GET padrão.
Para recuperar metadados de um ponto de extremidade de metadados MEX, você geralmente pode usar uma das associações MEX padrão suportadas pelo WCF. Para obter mais informações, veja System.ServiceModel.Description.MetadataExchangeBindings. O System.ServiceModel.Description.MetadataExchangeClient tipo e a ferramenta Svcutil.exe selecionam automaticamente uma dessas ligações MEX padrão com base no endereço do ponto de extremidade de metadados especificado.
Se um ponto de extremidade de metadados MEX usar uma associação diferente de uma das associações MEX padrão, você poderá configurar a associação usada pelo MetadataExchangeClient código de uso ou fornecendo uma IMetadataExchange configuração de ponto de extremidade de cliente. A ferramenta Svcutil.exe carrega automaticamente de seu arquivo de configuração uma IMetadataExchange configuração de ponto de extremidade do cliente que tem o mesmo nome que o esquema de URI para o endereço do ponto de extremidade de metadados.
Segurança
Ao publicar metadados sobre uma associação personalizada, certifique-se de que a associação fornece o suporte de segurança necessário para os metadados. Por exemplo, para evitar a divulgação de informações e garantir que seu cliente tenha o direito de obter os metadados, você pode tornar seus metadados e seu aplicativo mais seguros configurando seu IMetadataExchange ponto de extremidade para exigir autenticação e criptografia. O exemplo de Custom Secure Metadata Endpoint demonstra esse cenário.