Lai iegūtu WCF metadatus HTTP GET režīmā .NET Framework 4.8.1, konfigurējiet agrāko metadatu pieprasījumu, nevis tikai galīgo SOAP klientu. Tā aizsargātais GetWebRequest āķis var piemērot atsevišķi pārvaldītu maršrutu:

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;
    }
}

Tipi nāk no System.Net un System.ServiceModel.Description. Izveidojiet šo klientu ar paredzēto WebProxy un izmantojiet HttpGet režīmu WSDL URL. Ievietojiet starpniekservera kontu šajā objektā; metadatu servera autentifikācija ir atsevišķa.

Sekojiet importiem, ja saknes WSDL izdodas, bet risinājums vēlāk neizdodas. Citi WSDL un shēmas var izmantot citus resursdatorus vai protokolus.

Izvēlieties atbilstošo paplašinājumu citam iegūšanas režīmam. WS-MetadataExchange izmanto kanālu, kura izveides āķis ir GetChannelFactory; tā binding un starpniekservera iestatījumi netiek universāli aizstāti ar HttpWebRequest pārrakstīšanu.

Noklusējuma lietojumprogrammas starpniekserveris var būt pietiekams, ja visiem iesaistītajiem mantotajiem komponentiem tas ir jākoplieto. Apakšklase ir paredzēta skaidrai metadatu piederībai šajā API saimē. Ģenerētajiem SOAP izsaukumiem joprojām ir nepieciešama sava izpildlaika transporta konfigurācija. BasicHttpBinding klientam pārbaudiet ProxyAddress un UseDefaultWebProxy kopā.

Saistītie raksti