WCF .NET Framework-ում․ HTTP GET մետատվյալների պրոքսի կարգավորումներ
Կարգավորեք WCF մետատվյալների հին ստացման ուղին՝ ներառյալ HTTP ներմուծումները, առանձին վերջնական SOAP ծառայության հաճախորդից։
.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-ն միասին։