WCF op .NET Framework: HTTP GET-metadata-volmaginstellings
Stel die ouer WCF-metadata-ophaalpad, insluitend HTTP-invoere, afsonderlik van die uiteindelike SOAP-dienskliënt in.
Vir .NET Framework 4.8.1 WCF-metadata-ophaal in HTTP GET-modus, stel die vroeëre metadata-versoek in eerder as slegs die uiteindelike SOAP-kliënt. Sy beskermde GetWebRequest-haak kan 'n afsonderlik bestuurde roete toepas:
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;
}
}Die tipes kom uit System.Net en System.ServiceModel.Description. Konstrueer hierdie kliënt met die bedoelde WebProxy en gebruik HttpGet-modus vir die WSDL-URL. Sit die volmagrekening op daardie objek; metadata-bediener-verifikasie is apart.
Volg invoere as die wortel-WSDL slaag maar ontleding later misluk. Ander WSDL's en skemas kan ander gashere of protokolle gebruik.
Kies die ooreenstemmende uitbreiding vir 'n ander ophaalmodus. WS-MetadataExchange gebruik 'n kanaal, wie se skeppingshaak GetChannelFactory is; sy binding- en volmaginstellings word nie algemeen deur 'n HttpWebRequest-oorheersing vervang nie.
'n Verstek-toepassingsvolmag kan voldoende wees wanneer alle deelnemende legacy-komponente dit moet deel. Die subklas is vir eksplisiete metadata-eienaarskap binne hierdie API-familie. Gegenereerde SOAP-oproepe het steeds hul eie runtime-vervoerkonfigurasie nodig. Vir 'n BasicHttpBinding-kliënt, kyk na ProxyAddress en UseDefaultWebProxy saam.