WCF på .NET Framework: proxyindstillinger for HTTP GET-metadata
Konfigurer den ældre WCF-metadatahentningssti, inklusive HTTP-import, adskilt fra den endelige SOAP-tjenesteklient.
Til WCF-metadatahentning i HTTP GET-tilstand på .NET Framework 4.8.1 skal du konfigurere den tidligere metadataanmodning i stedet for kun den endelige SOAP-klient. Dens beskyttede GetWebRequest-hook kan anvende en separat styret rute:
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;
}
}Typerne kommer fra System.Net og System.ServiceModel.Description. Konstruer denne klient med den tilsigtede WebProxy, og brug HttpGet-tilstand til WSDL-URL'en. Læg proxykontoen på det objekt; godkendelse over for metadataserveren er separat.
Følg importer, hvis rod-WSDL'en lykkes, men opløsningen fejler senere. Andre WSDL'er og skemaer kan bruge forskellige værter eller protokoller.
Vælg den tilsvarende udvidelse til en anden hentningstilstand. WS-MetadataExchange bruger en kanal, hvis oprettelseshook er GetChannelFactory; dens binding- og proxyindstillinger erstattes ikke universelt af en HttpWebRequest-tilsidesættelse.
En standardapplikationsproxy kan være tilstrækkelig, når alle deltagende ældre komponenter skal dele den. Underklassen er til eksplicit metadataejerskab inden for denne API-familie. Genererede SOAP-kald har stadig brug for deres egen runtime-transportkonfiguration. For en BasicHttpBinding-klient skal du kontrollere ProxyAddress og UseDefaultWebProxy sammen.