For WCF-metadatahenting i HTTP GET-modus på .NET Framework 4.8.1 konfigurerer du den tidligere metadatareforespørselen i stedet for bare den endelige SOAP-klienten. Den beskyttede GetWebRequest-kroken kan bruke en egen styrt rute:

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;
    }
}

Typene kommer fra System.Net og System.ServiceModel.Description. Bygg denne klienten med den tiltenkte WebProxy og bruk HttpGet-modus for WSDL-URL-en. Legg proxykontoen på det objektet; godkjenning mot metadataserveren er separat.

Følg importer hvis rot-WSDL-en lykkes, men oppslaget feiler senere. Andre WSDL-er og skjemaer kan bruke andre verter eller protokoller.

Velg den tilsvarende utvidelsen for en annen hentemodus. WS-MetadataExchange bruker en kanal, hvis opprettelseskrok er GetChannelFactory; dens binding- og proxyinnstillinger erstattes ikke universelt av en HttpWebRequest-overstyring.

En standard applikasjonsproxy kan være nok når alle deltakende eldre komponenter skal dele den. Underklassen er for eksplisitt metadataeierskap innenfor denne API-familien. Genererte SOAP-kall trenger fortsatt sin egen runtime-transportkonfigurasjon. For en BasicHttpBinding-klient, kontroller ProxyAddress og UseDefaultWebProxy sammen.

Relaterte artikler