Ar gyfer casglu metadata WCF yn y modd HTTP GET ar .NET Framework 4.8.1, ffurfweddwch y cais metadata cynharach yn hytrach na'r cleient SOAP terfynol yn unig. Gall ei fachyn gwarchodedig GetWebRequest gymhwyso llwybr a reolir ar wahân:

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

Daw'r mathau o System.Net a System.ServiceModel.Description. Adeiladwch y cleient hwn gyda'r WebProxy a fwriadwyd a defnyddiwch y modd HttpGet ar gyfer URL y WSDL. Rhowch y cyfrif dirprwy ar y gwrthrych hwnnw; mae dilysu'r gweinydd metadata ar wahân.

Dilynwch fewnforion os yw'r WSDL gwraidd yn llwyddo ond mae'r datrysiad yn methu'n ddiweddarach. Gall WSDLs a sgemiau eraill ddefnyddio gwesteiwyr neu brotocolau gwahanol.

Dewiswch yr estyniad cyfatebol ar gyfer modd casglu arall. Mae WS-MetadataExchange yn defnyddio sianel, a'i fachyn creu yw GetChannelFactory; nid yw ei osodiadau binding a dirprwy yn cael eu disodli'n gyffredinol gan drosiad HttpWebRequest.

Gall dirprwy rhaglen ragosodedig fod yn ddigon pan ddylai pob cydran etifeddol sy'n cymryd rhan ei rannu. Mae'r is-ddosbarth ar gyfer perchnogaeth metadata benodol o fewn y teulu API hwn. Mae galwadau SOAP a gynhyrchwyd yn dal i fod angen eu ffurfwedd cludo amser rhedeg eu hunain. Ar gyfer cleient BasicHttpBinding, gwiriwch ProxyAddress a UseDefaultWebProxy gyda'i gilydd.

Erthyglau cysylltiedig