.NET Framework 4.8.1-ում HTTP GET ռեժիմով 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-ով և օգտագործեք HttpGet ռեժիմը WSDL URL-ի համար։ Տեղադրեք պրոքսի հաշիվը այդ օբյեկտի վրա․ մետատվյալների սերվերի նույնականացումն առանձին է։

Հետևեք ներմուծումներին, եթե արմատական WSDL-ը հաջողվում է, բայց լուծումը հետո ձախողվում է։ Այլ WSDL-ներ և սխեմաներ կարող են օգտագործել տարբեր հոսթեր կամ արձանագրություններ։

Ընտրեք համապատասխան ընդլայնումը մեկ այլ ստացման ռեժիմի համար։ WS-MetadataExchange-ը օգտագործում է ալիք, որի ստեղծման կեռիկը GetChannelFactory է․ նրա binding-ի և պրոքսիի կարգավորումները համընդհանուր չեն փոխարինվում HttpWebRequest-ի վերագրանցմամբ։

Լռելյայն հավելվածի պրոքսին կարող է բավարար լինել, երբ մասնակցող բոլոր հին բաղադրիչները պետք է կիսեն այն։ Ենթադասը նախատեսված է այս API ընտանիքում մետատվյալների բացահայտ սեփականության համար։ Գեներացված SOAP կանչերը դեռ պետք է ունենան իրենց սեփական runtime տրանսպորտի կարգավորումը։ BasicHttpBinding հաճախորդի համար ստուգեք ProxyAddress-ը և UseDefaultWebProxy-ն միասին։

Առնչվող հոդվածներ