WCF .NET Frameworkissa: HTTP GET -metatietojen välityspalvelinasetukset
Määritä vanha WCF-metatietojen hakupolku, mukaan lukien HTTP-tuonnit, erikseen lopullisesta SOAP-palvelun asiakkaasta.
Kun haet WCF-metatietoja HTTP GET -tilassa .NET Framework 4.8.1:ssä, määritä aikaisempi metatietopyyntö eikä vain lopullinen SOAP-asiakas. Sen suojattu GetWebRequest-koukku voi soveltaa erikseen hallinnoitua reittiä:
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;
}
}Tyypit tulevat nimiavaruuksista System.Net ja System.ServiceModel.Description. Muodosta tämä asiakas halutulla WebProxyllä ja käytä HttpGet-tilaa WSDL-URL:lle. Aseta välityspalvelimen tili kyseiseen objektiin; metatietopalvelimen todennus on erillinen.
Seuraa tuonteja, jos juuri-WSDL onnistuu mutta selvitys epäonnistuu myöhemmin. Muut WSDL:t ja skeemat voivat käyttää eri isäntiä tai protokollia.
Valitse vastaava laajennus toiselle hakutilalle. WS-MetadataExchange käyttää kanavaa, jonka luontikoukku on GetChannelFactory; sen sidonta- ja välityspalvelinasetuksia ei korvata yleisesti HttpWebRequestin ohituksella.
Sovelluksen oletusvälityspalvelin voi riittää, kun kaikkien osallistuvien vanhojen komponenttien pitäisi jakaa se. Alaluokka on tämän API-perheen metatietojen nimenomaiseen omistajuuteen. Luodut SOAP-kutsut tarvitsevat silti oman ajonaikaisen siirtomäärityksensä. BasicHttpBinding-asiakkaalle tarkista ProxyAddress ja UseDefaultWebProxy yhdessä.