Til WCF-metadatahentning i HTTP GET-tilstand på .NET Framework 4.8.1 skal du konfigurere den tidligere metadataanmodning i stedet for kun den endelige SOAP-klient. Dens beskyttede GetWebRequest-hook kan anvende en separat styret 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;
    }
}

Typerne kommer fra System.Net og System.ServiceModel.Description. Konstruer denne klient med den tilsigtede WebProxy, og brug HttpGet-tilstand til WSDL-URL'en. Læg proxykontoen på det objekt; godkendelse over for metadataserveren er separat.

Følg importer, hvis rod-WSDL'en lykkes, men opløsningen fejler senere. Andre WSDL'er og skemaer kan bruge forskellige værter eller protokoller.

Vælg den tilsvarende udvidelse til en anden hentningstilstand. WS-MetadataExchange bruger en kanal, hvis oprettelseshook er GetChannelFactory; dens binding- og proxyindstillinger erstattes ikke universelt af en HttpWebRequest-tilsidesættelse.

En standardapplikationsproxy kan være tilstrækkelig, når alle deltagende ældre komponenter skal dele den. Underklassen er til eksplicit metadataejerskab inden for denne API-familie. Genererede SOAP-kald har stadig brug for deres egen runtime-transportkonfiguration. For en BasicHttpBinding-klient skal du kontrollere ProxyAddress og UseDefaultWebProxy sammen.

Relaterede artikler