Norėdami gauti WCF metaduomenis HTTP GET režimu .NET Framework 4.8.1, sukonfigūruokite ankstesnę metaduomenų užklausą, o ne tik galutinį SOAP klientą. Jos apsaugotas GetWebRequest kabliukas gali taikyti atskirai valdomą maršrutą:

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

Tipai ateina iš System.Net ir System.ServiceModel.Description. Sukurkite šį klientą su numatytu WebProxy ir naudokite HttpGet režimą WSDL URL. Įdėkite tarpinio serverio paskyrą į tą objektą; metaduomenų serverio autentifikavimas yra atskiras.

Sekite importus, jei šakninis WSDL pavyksta, bet sprendimas vėliau nepavyksta. Kiti WSDL ir schemos gali naudoti skirtingus hostus ar protokolus.

Pasirinkite atitinkamą plėtinį kitam gavimo režimui. WS-MetadataExchange naudoja kanalą, kurio kūrimo kabliukas yra GetChannelFactory; jo binding ir tarpinio serverio nustatymai nėra universaliai pakeičiami HttpWebRequest perrašymu.

Numatytasis programos tarpinis serveris gali pakakti, kai visi dalyvaujantys senieji komponentai turėtų jį bendrinti. Poklasis skirtas aiškiai metaduomenų nuosavybei šioje API šeimoje. Sugeneruoti SOAP iškvietimai vis dar reikalauja savo vykdymo laiko transporto konfigūracijos. BasicHttpBinding klientui patikrinkite ProxyAddress ir UseDefaultWebProxy kartu.

Susiję straipsniai