HTTP GET మోడ్‌లో .NET Framework 4.8.1లో WCF మెటాడేటా పునఃప్రాప్తి కోసం, చివరి SOAP క్లయింట్ మాత్రమే కాకుండా మునుపటి మెటాడేటా అభ్యర్థనను కాన్ఫిగర్ చేయండి. దాని రక్షిత GetWebRequest హుక్ విడిగా నిర్వహించబడే మార్గాన్ని వర్తింపజేయగలదు:

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

రకాలు System.Net మరియు System.ServiceModel.Description నుండి వస్తాయి. ఈ క్లయింట్‌ను ఉద్దేశించిన WebProxyతో నిర్మించి, WSDL URL కోసం HttpGet మోడ్‌ను ఉపయోగించండి. ప్రాక్సీ ఖాతాను ఆ ఆబ్జెక్ట్‌పై ఉంచండి; మెటాడేటా సర్వర్ ప్రామాణీకరణ వేరుగా ఉంటుంది.

రూట్ WSDL విజయవంతమైనా తర్వాత పరిష్కారం విఫలమైతే దిగుమతులను అనుసరించండి. ఇతర WSDL మరియు స్కీమాలు వేరే హోస్ట్‌లు లేదా ప్రోటోకాల్‌లను ఉపయోగించవచ్చు.

మరొక పునఃప్రాప్తి మోడ్ కోసం సంబంధిత పొడిగింపును ఎంచుకోండి. WS-MetadataExchange ఛానెల్‌ను ఉపయోగిస్తుంది, దాని సృష్టి హుక్ GetChannelFactory; దాని binding మరియు ప్రాక్సీ సెట్టింగ్‌లు HttpWebRequest ఓవర్‌రైడ్ ద్వారా సార్వత్రికంగా భర్తీ చేయబడవు.

పాల్గొనే అన్ని పాత భాగాలు దాన్ని పంచుకోవాల్సినప్పుడు డిఫాల్ట్ అప్లికేషన్ ప్రాక్సీ సరిపోతుంది. సబ్‌క్లాస్ ఈ API కుటుంబంలో స్పష్టమైన మెటాడేటా యాజమాన్యం కోసం. రూపొందించిన SOAP కాల్‌లకు ఇప్పటికీ వాటి స్వంత రన్‌టైమ్ రవాణా కాన్ఫిగరేషన్ అవసరం. BasicHttpBinding క్లయింట్ కోసం, ProxyAddress మరియు UseDefaultWebProxy కలిసి తనిఖీ చేయండి.

సంబంధిత వ్యాసాలు