WCF na .NET Framework: nastavení proxy pro metadata HTTP GET
Nakonfigurujte starší cestu načítání metadat WCF, včetně importů HTTP, odděleně od konečného klienta služby SOAP.
Pro načítání metadat WCF v režimu HTTP GET na .NET Framework 4.8.1 nakonfigurujte dřívější požadavek na metadata, ne jen konečného klienta SOAP. Jeho chráněný hook GetWebRequest může použít samostatně spravovanou trasu:
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;
}
}Typy pocházejí z System.Net a System.ServiceModel.Description. Sestavte tohoto klienta s zamýšleným WebProxy a pro adresu URL WSDL použijte režim HttpGet. Účet proxy vložte na tento objekt; ověřování serveru metadat je oddělené.
Pokud kořenový WSDL uspěje, ale překlad později selže, sledujte importy. Jiné WSDL a schémata mohou používat jiné hostitele nebo protokoly.
Pro jiný režim načítání zvolte odpovídající rozšíření. WS-MetadataExchange používá kanál, jehož hook pro vytvoření je GetChannelFactory; jeho nastavení vazby a proxy se univerzálně nenahrazuje přepsáním HttpWebRequest.
Výchozí proxy aplikace může stačit, když jej mají sdílet všechny zúčastněné starší komponenty. Podtřída slouží k explicitnímu vlastnictví metadat v této rodině API. Generovaná volání SOAP stále potřebují vlastní konfiguraci přenosu za běhu. U klienta BasicHttpBinding zkontrolujte ProxyAddress a UseDefaultWebProxy společně.