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 എന്നിവ ഒരുമിച്ച് പരിശോധിക്കുക.

അനുബന്ധ ലേഖനങ്ങൾ