WCF sur .NET Framework: prokseaj agordoj por HTTP GET-metadatenoj
Agordi la malnovan WCF-metadatan alportvojon, inkluzive de HTTP-importoj, aparte de la fina SOAP-servokliento.
Por WCF-metadata alporto en HTTP GET-reĝimo sur .NET Framework 4.8.1, agordu la pli fruan metadatan peton anstataŭ nur la finan SOAP-klienton. Ĝia protektita GetWebRequest hoko povas apliki aparte administritan itineron:
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;
}
}La tipoj venas de System.Net kaj System.ServiceModel.Description. Konstruu ĉi tiun klienton kun la celata WebProxy kaj uzu la HttpGet-reĝimon por la WSDL-URL. Metu la proksean konton sur tiun objekton; la aŭtentikigo de la metadatservilo estas aparta.
Sekvu importojn se la radika WSDL sukcesas sed la solvo malsukcesas poste. Aliaj WSDL-oj kaj skemoj povas uzi malsamajn gastigantojn aŭ protokolojn.
Elektu la respondan etendaĵon por alia alporta reĝimo. WS-MetadataExchange uzas kanalon, kies krea hoko estas GetChannelFactory; ĝiaj ligaj kaj prokseaj agordoj ne estas universale anstataŭigitaj per HttpWebRequest-anstataŭigo.
Defaŭlta aplikaĵa prokseo povas sufiĉi kiam ĉiuj partoprenantaj malnovaj komponantoj devus kunhavigi ĝin. La subklaso estas por eksplicita metadatenposedo ene de ĉi tiu API-familio. Generitaj SOAP-alvokoj ankoraŭ bezonas sian propran rultempan transportan agordon. Por BasicHttpBinding-kliento, kontrolu ProxyAddress kaj UseDefaultWebProxy kune.