Para a recuperación de metadatos de WCF en modo HTTP GET en .NET Framework 4.8.1, configure a solicitude de metadatos anterior en lugar de só o cliente SOAP final. O seu gancho protexido GetWebRequest pode aplicar unha ruta xestionada por separado:

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 proveñen de System.Net e System.ServiceModel.Description. Construída este cliente co WebProxy previsto e use o modo HttpGet para o URL do WSDL. Coloque a conta de proxy nese obxecto; a autenticación do servidor de metadatos é independente.

Siga as importacións se o WSDL raíz ten éxito pero a resolución falla despois. Outros WSDL e esquemas poden usar hosts ou protocolos distintos.

Escolla a extensión correspondente para outro modo de recuperación. WS-MetadataExchange usa unha canle, cuxo gancho de creación é GetChannelFactory; a súa configuración de binding e proxy non se substitúe universalmente cunha substitución de HttpWebRequest.

Un proxy de aplicación predeterminado pode abondar cando todos os compoñentes herdados participantes deben compartilo. A subclase é para a propiedade explícita dos metadatos dentro desta familia de API. As invocacións SOAP xeradas seguen necesitando a súa propia configuración de transporte en tempo de execución. Para un cliente BasicHttpBinding, comprobe ProxyAddress e UseDefaultWebProxy xuntos.

Artigos relacionados