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 чакыруулары өздөрүнүн runtime ташуу конфигурациясын дагы эле талап кылат. BasicHttpBinding кардары үчүн ProxyAddress жана UseDefaultWebProxy бирге текшериңиз.

Тектеш макалалар