WCF air .NET Framework: roghainnean proxy meitidàta HTTP GET
Dèan rèiteachadh air an t-seann shlighe togail meitidàta WCF, a' gabhail a-steach in-mhalairt HTTP, air leth bhon deireannach SOAP neach-cleachdaidh seirbheis.
Airson meitidàta WCF fhaighinn ann am modh HTTP GET air .NET Framework 4.8.1, rèitich an t-iarrtas meitidàta na bu thràithe seach dìreach an neach-cleachdaidh SOAP deireannach. Faodaidh an dubhan dìonta GetWebRequest aige slighe air a stiùireadh fa leth a chur an sàs:
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;
}
}Tha na seòrsaichean a' tighinn bho System.Net agus System.ServiceModel.Description. Tog an neach-cleachdaidh seo leis an WebProxy a tha san amharc agus cleachd modh HttpGet airson URL an WSDL. Cuir a' chunntas proxy air an nì sin; tha dearbhadh an t-seirbheisiche meitidàta air leth.
Lean na h-in-mhalairt ma shoirbhicheas leis an WSDL freumh ach ma dh'fhàillicheas an rùn nas fhaide air adhart. Faodaidh WSDL agus sgeamaichean eile aoighean no protocolaidhean eadar-dhealaichte a chleachdadh.
Tagh an leudachadh co-fhreagarrach airson modh togail eile. Bidh WS-MetadataExchange a' cleachdadh sianal, agus is e an dubhan cruthachaidh aige GetChannelFactory; chan eil na roghainnean binding agus proxy aige air an cur nan àite gu h-uile-choitcheann le tar-sgrìobhadh HttpWebRequest.
Dh'fhaodadh proxy tagraidh bunaiteach a bhith gu leòr nuair a bu chòir do gach co-phàirt dìleabach a tha an sàs a roinn. Tha an fo-chlas airson seilbh meitidàta follaiseach taobh a-staigh an teaghlaich API seo. Bidh feum aig gairmean SOAP a chaidh a chruthachadh fhathast air an rèiteachadh giùlain runtime aca fhèin. Airson neach-cleachdaidh BasicHttpBinding, thoir sùil air ProxyAddress agus UseDefaultWebProxy còmhla.