За преземање WCF метаподатоци во режим HTTP GET на .NET Framework 4.8.1, конфигурирајте го поранешното барање за метаподатоци, а не само крајниот 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 заедно.

Поврзани статии