WCF pe .NET Framework: setările proxy pentru metadate HTTP GET
Configurați calea veche de recuperare a metadatelor WCF, inclusiv importurile HTTP, separat de clientul final al serviciului SOAP.
Pentru recuperarea metadatelor WCF în modul HTTP GET pe .NET Framework 4.8.1, configurați cererea de metadate anterioară, nu doar clientul SOAP final. Cârligul său protejat GetWebRequest poate aplica o rută administrată separat:
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;
}
}Tipurile provin din System.Net și System.ServiceModel.Description. Construiți acest client cu WebProxy-ul dorit și folosiți modul HttpGet pentru adresa URL WSDL. Puneți contul de proxy pe acel obiect; autentificarea la serverul de metadate este separată.
Urmați importurile dacă WSDL-ul rădăcină reușește, dar rezolvarea eșuează mai târziu. Alte WSDL-uri și scheme pot folosi gazde sau protocoale diferite.
Alegeți extensia corespunzătoare pentru un alt mod de recuperare. WS-MetadataExchange folosește un canal, al cărui cârlig de creare este GetChannelFactory; setările sale de binding și proxy nu sunt înlocuite universal de o suprascriere HttpWebRequest.
Un proxy de aplicație implicit poate fi suficient când toate componentele legacy participante ar trebui să îl partajeze. Subclasa este pentru proprietatea explicită asupra metadatelor în această familie de API. Apelurile SOAP generate au în continuare nevoie de propria configurație de transport la rulare. Pentru un client BasicHttpBinding, verificați ProxyAddress și UseDefaultWebProxy împreună.