Za pridobivanje metapodatkov WCF v načinu HTTP GET v .NET Framework 4.8.1 konfigurirajte prejšnjo zahtevo za metapodatke in ne le končnega odjemalca SOAP. Njegov zaščiteni kavelj GetWebRequest lahko uporabi ločeno upravljano pot:

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

Tipi prihajajo iz System.Net in System.ServiceModel.Description. Zgradite tega odjemalca z želenim WebProxy in uporabite način HttpGet za URL WSDL. Račun proxyja postavite na ta objekt; preverjanje pristnosti strežnika metapodatkov je ločeno.

Sledite uvozom, če korenski WSDL uspe, a razrešitev pozneje ne uspe. Drugi WSDL in sheme lahko uporabljajo drugačne gostitelje ali protokole.

Za drug način pridobivanja izberite ustrezno razširitev. WS-MetadataExchange uporablja kanal, katerega kavelj za ustvarjanje je GetChannelFactory; njegove nastavitve povezave in proxyja se ne nadomestijo vsesplošno s prepisom HttpWebRequest.

Privzeti proxy aplikacije lahko zadostuje, ko ga morajo deliti vse sodelujoče starejše komponente. Podrazred je za izrecno lastništvo metapodatkov v tej družini API. Ustvarjeni klici SOAP še vedno potrebujejo lastno konfiguracijo prenosa v času izvajanja. Za odjemalca BasicHttpBinding preverite ProxyAddress in UseDefaultWebProxy skupaj.

Sorodni članki