WCF no .NET Framework: configurações de proxy de metadados HTTP GET
Configure o caminho legado de recuperação de metadados do WCF, incluindo importações HTTP, separadamente do cliente de serviço SOAP final.
Para a recuperação de metadados do WCF no modo HTTP GET no .NET Framework 4.8.1, configure a requisição de metadados anterior, e não apenas o cliente SOAP final. Seu gancho protegido GetWebRequest pode aplicar uma rota gerenciada separadamente:
class RoutedMetadataClient : MetadataExchangeClient
{
private readonly IWebProxy route;
public RoutedMetadataClient(IWebProxy route)
{
this.route = route;
}
protected override HttpWebRequest GetWebRequest(
Uri location, string dialect, string identifier)
{
HttpWebRequest request =
base.GetWebRequest(location, dialect, identifier);
request.Proxy = route;
return request;
}
}Os tipos vêm de System.Net e System.ServiceModel.Description. Construa este cliente com o WebProxy pretendido e use o modo HttpGet para a URL do WSDL. Coloque a conta de proxy nesse objeto; a autenticação do servidor de metadados é separada.
Siga as importações se o WSDL raiz funcionar, mas a resolução falhar depois. Outros WSDL e esquemas podem usar hosts ou protocolos diferentes.
Escolha a extensão correspondente para outro modo de recuperação. O WS-MetadataExchange usa um canal, cujo gancho de criação é GetChannelFactory; suas configurações de binding e proxy não são substituídas universalmente por uma substituição de HttpWebRequest.
Um proxy de aplicativo padrão pode bastar quando todos os componentes legados participantes devem compartilhá-lo. A subclasse serve para a propriedade explícita de metadados dentro desta família de API. As chamadas SOAP geradas ainda precisam de sua própria configuração de transporte em tempo de execução. Para um cliente BasicHttpBinding, verifique ProxyAddress e UseDefaultWebProxy juntos.