WCF ໃນ .NET Framework: ການຕັ້ງຄ່າ proxy ຂອງ metadata ຜ່ານ HTTP GET
ຕັ້ງຄ່າເສັ້ນທາງການດຶງ metadata ຂອງ WCF ແບບເກົ່າ, ລວມທັງການນຳເຂົ້າ HTTP, ແຍກຕ່າງຫາກຈາກ SOAP service client ສຸດທ້າຍ.
ສຳລັບການດຶງ metadata ຂອງ WCF ໃນໂໝດ HTTP GET ໃນ .NET Framework 4.8.1, ໃຫ້ຕັ້ງຄ່າຄຳຮ້ອງ metadata ກ່ອນໜ້າ ບໍ່ແມ່ນພຽງແຕ່ SOAP client ສຸດທ້າຍ. hook ທີ່ຖືກປົກປ້ອງ GetWebRequest ຂອງມັນສາມາດໃຊ້ເສັ້ນທາງທີ່ຄຸ້ມຄອງແຍກຕ່າງຫາກ:
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;
}
}ປະເພດມາຈາກ System.Net ແລະ System.ServiceModel.Description. ສ້າງ client ນີ້ດ້ວຍ WebProxy ທີ່ຕັ້ງໃຈ ແລະ ໃຊ້ໂໝດ HttpGet ສຳລັບ URL ຂອງ WSDL. ໃສ່ບັນຊີ proxy ໃສ່ວັດຖຸນັ້ນ; ການພິສູດຢືນຢັນເຊີບເວີ metadata ແມ່ນແຍກຕ່າງຫາກ.
ຕິດຕາມການນຳເຂົ້າ ຖ້າ WSDL ຫຼັກສຳເລັດ ແຕ່ການແກ້ໄຂລົ້ມເຫຼວພາຍຫຼັງ. WSDL ແລະ schema ອື່ນໆອາດໃຊ້ເຈົ້າພາບ ຫຼື ໂປຣໂຕຄອນຕ່າງກັນ.
ເລືອກສ່ວນຂະຫຍາຍທີ່ເໝາະສົມສຳລັບໂໝດການດຶງອື່ນ. WS-MetadataExchange ໃຊ້ຊ່ອງທາງ, ເຊິ່ງ hook ການສ້າງຂອງມັນແມ່ນ GetChannelFactory; ການຕັ້ງຄ່າ binding ແລະ proxy ຂອງມັນບໍ່ຖືກແທນທີ່ເປັນສາກົນໂດຍການຂຽນທັບ HttpWebRequest.
proxy ແອັບພລິເຄຊັນເລີ່ມຕົ້ນອາດພຽງພໍ ເມື່ອອົງປະກອບເກົ່າທຸກຕົວທີ່ເຂົ້າຮ່ວມຄວນແບ່ງປັນມັນ. ຊັ້ນຍ່ອຍແມ່ນສຳລັບຄວາມເປັນເຈົ້າຂອງ metadata ຢ່າງຊັດເຈນໃນຄອບຄົວ API ນີ້. ການເອີ້ນ SOAP ທີ່ສ້າງຂຶ້ນຍັງຕ້ອງການການຕັ້ງຄ່າການຂົນສົ່ງ runtime ຂອງຕົນເອງ. ສຳລັບ client BasicHttpBinding, ກວດເບິ່ງ ProxyAddress ແລະ UseDefaultWebProxy ນຳກັນ.