.NET Frameworkలో WCF: HTTP GET మెటాడేటా ప్రాక్సీ సెట్టింగ్లు
HTTP దిగుమతులతో సహా పాత WCF మెటాడేటా పునఃప్రాప్తి మార్గాన్ని చివరి SOAP సేవా క్లయింట్ నుండి విడిగా కాన్ఫిగర్ చేయండి.
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 కలిసి తనిఖీ చేయండి.