Për marrjen e metadatave WCF në modalitetin HTTP GET në .NET Framework 4.8.1, konfiguroni kërkesën e mëparshme të metadatave dhe jo vetëm klientin përfundimtar SOAP. Hook-u i mbrojtur GetWebRequest mund të aplikojë një rrugë të menaxhuar veçmas:

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

Tipet vijnë nga System.Net dhe System.ServiceModel.Description. Ndërtoni këtë klient me WebProxy-n e synuar dhe përdorni modalitetin HttpGet për URL-në e WSDL. Vendosni llogarinë e proxy-t në atë objekt; vërtetimi me serverin e metadatave është i veçantë.

Ndiqni importet nëse WSDL-ja rrënjësore ka sukses, por zgjidhja dështon më vonë. WSDL-të dhe skemat e tjera mund të përdorin host-e ose protokolle të ndryshme.

Zgjidhni shtesën përkatëse për një modalitet tjetër marrjeje. WS-MetadataExchange përdor një kanal, hook-u i krijimit të të cilit është GetChannelFactory; cilësimet e tij të binding dhe proxy nuk zëvendësohen universalisht nga një anashkalim i HttpWebRequest.

Një proxy i paracaktuar i aplikacionit mund të mjaftojë kur të gjithë komponentët e vjetër pjesëmarrës duhet ta ndajnë atë. Nënklasa është për pronësi të qartë të metadatave brenda kësaj familjeje API. Thirrjet SOAP të gjeneruara ende kanë nevojë për konfigurimin e tyre të transportit në kohë ekzekutimi. Për një klient BasicHttpBinding, kontrolloni ProxyAddress dhe UseDefaultWebProxy së bashku.

Artikuj të ngjashëm