WCF a .NET Framework: configuració del proxy de metadades HTTP GET
Configureu la ruta heretada d'obtenció de metadades WCF, incloses les importacions HTTP, per separat del client de servei SOAP final.
Per a l'obtenció de metadades WCF en mode HTTP GET a .NET Framework 4.8.1, configureu la sol·licitud de metadades anterior i no només el client SOAP final. El seu hook protegit GetWebRequest pot aplicar una ruta gestionada per 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;
}
}Els tipus provenen de System.Net i System.ServiceModel.Description. Construïu aquest client amb el WebProxy previst i feu servir el mode HttpGet per a l'URL del WSDL. Posa el compte de proxy en aquest objecte; l'autenticació del servidor de metadades és a part.
Seguiu les importacions si el WSDL arrel té èxit però la resolució falla més tard. Altres WSDL i esquemes poden usar amfitrions o protocols diferents.
Trieu l'extensió corresponent per a un altre mode d'obtenció. WS-MetadataExchange usa un canal, el hook de creació del qual és GetChannelFactory; la seva configuració de binding i de proxy no es substitueix universalment amb una sobreescriptura d'HttpWebRequest.
Un proxy d'aplicació per defecte pot ser suficient quan tots els components heretats participants l'han de compartir. La subclasse és per a una propietat explícita de les metadades dins d'aquesta família d'API. Les invocacions SOAP generades encara necessiten la seva pròpia configuració de transport en temps d'execució. Per a un client BasicHttpBinding, comproveu ProxyAddress i UseDefaultWebProxy junts.