Vir .NET Framework 4.8.1 WCF-metadata-ophaal in HTTP GET-modus, stel die vroeëre metadata-versoek in eerder as slegs die uiteindelike SOAP-kliënt. Sy beskermde GetWebRequest-haak kan 'n afsonderlik bestuurde roete toepas:

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

Die tipes kom uit System.Net en System.ServiceModel.Description. Konstrueer hierdie kliënt met die bedoelde WebProxy en gebruik HttpGet-modus vir die WSDL-URL. Sit die volmagrekening op daardie objek; metadata-bediener-verifikasie is apart.

Volg invoere as die wortel-WSDL slaag maar ontleding later misluk. Ander WSDL's en skemas kan ander gashere of protokolle gebruik.

Kies die ooreenstemmende uitbreiding vir 'n ander ophaalmodus. WS-MetadataExchange gebruik 'n kanaal, wie se skeppingshaak GetChannelFactory is; sy binding- en volmaginstellings word nie algemeen deur 'n HttpWebRequest-oorheersing vervang nie.

'n Verstek-toepassingsvolmag kan voldoende wees wanneer alle deelnemende legacy-komponente dit moet deel. Die subklas is vir eksplisiete metadata-eienaarskap binne hierdie API-familie. Gegenereerde SOAP-oproepe het steeds hul eie runtime-vervoerkonfigurasie nodig. Vir 'n BasicHttpBinding-kliënt, kyk na ProxyAddress en UseDefaultWebProxy saam.

Verwante artikels