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 સાથે તપાસો.

સંબંધિત લેખો