Publicando e recuperando metadados através de uma associação personalizada
O System.ServiceModel.Description.ServiceMetadataBehavior dá 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 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 definindo 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 ponto de extremidade IMetadataExchange.
Recuperando metadados através de uma associação personalizada
Os metadados podem ser recuperados dos pontos de extremidade obter 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 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 dessas associaçõ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 código MetadataExchangeClient usando ou fornecendo uma configuração de ponto de extremidade do cliente IMetadataExchange. A ferramenta Svcutil.exe carrega automaticamente 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 que seus metadados exigem. 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 ponto de extremidade IMetadataExchange para exigir autenticação e criptografia. O exemplo Ponto de Extremidade de Metadados Seguros Personalizados demonstra esse cenário.