Compartilhar via


Publicando e recuperando metadados através de uma associação personalizada

O System.ServiceModel.Description.ServiceMetadataBehavior fornece suporte para adicionar o endpoint de metadados a um serviço. Esses pontos de extremidade de metadados podem responder a solicitações HTTP GET em uma URL que tem uma consulta ?wsdl e para WS-Transfer solicitações GET, conforme definido na especificação mex (WS-MetadataExchange). Os pontos de extremidade MEX implementam o contrato System.ServiceModel.Description.IMetadataExchange.

Publicando e recuperando metadados através de uma associação personalizada

Os pontos de extremidade de metadados HTTP GET e os pontos de extremidade de metadados HTTPS GET são habilitados ao definir as propriedades ServiceMetadataBehavior.HttpGetEnabled ou ServiceMetadataBehavior.HttpsGetEnabled como true. As associações para esses pontos de extremidade não podem ser configuradas.

O contrato IMetadataExchange, no entanto, pode ser usado com qualquer ponto de extremidade, incluindo aqueles que usam associações personalizadas, pois os pontos de extremidade IMetadataExchange são idênticos a qualquer outro ponto de extremidade de serviço do WCF (Windows Communication Foundation). Se você souber como modificar a configuração de uma associação fornecida pelo sistema ou souber como configurar uma System.ServiceModel.Channels.CustomBinding, poderá configurar uma associação para uso com um IMetadataExchange ponto de extremidade.

Recuperando metadados através de uma associação personalizada

Os metadados podem ser recuperados a partir dos endpoints de metadados HTTP GET e HTTPS GET, usando solicitações padrão HTTP ou HTTPS GET.

Para recuperar metadados de um ponto de extremidade de metadados MEX, você geralmente pode usar uma das associações MEX padrão com suporte pelo WCF. Para obter mais informações, consulte System.ServiceModel.Description.MetadataExchangeBindings. O tipo System.ServiceModel.Description.MetadataExchangeClient e a ferramenta Svcutil.exe selecionam automaticamente uma das associações padrão MEX com base no endereço do endpoint 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 código MetadataExchangeClient usando ou fornecendo uma configuração de ponto de extremidade do cliente IMetadataExchange. A ferramenta Svcutil.exe carrega automaticamente, a partir de seu arquivo de configuração, uma configuração de ponto de extremidade do cliente (IMetadataExchange) 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 em uma associação personalizada, verifique se a associação fornece o suporte de segurança necessário aos metadados. Por exemplo, para impedir 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 Ponto de Extremidade de Metadados Seguros Personalizados demonstra esse cenário.

Consulte também