WCF บน .NET Framework: การตั้งค่าพร็อกซี่ของข้อมูลเมตา HTTP GET
กำหนดค่าเส้นทางการดึงข้อมูลเมตา WCF แบบเดิม รวมถึงการนำเข้า HTTP แยกจากไคลเอนต์บริการ SOAP ขั้นสุดท้าย
สำหรับการดึงข้อมูลเมตา WCF ในโหมด HTTP GET บน .NET Framework 4.8.1 ให้กำหนดค่าคำขอข้อมูลเมตาก่อนหน้า ไม่ใช่เพียงไคลเอนต์ SOAP ขั้นสุดท้าย ฮุก 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 สร้างไคลเอนต์นี้ด้วย WebProxy ที่ต้องการและใช้โหมด HttpGet สำหรับ URL ของ WSDL วางบัญชีพร็อกซี่บนออบเจ็กต์นั้น การพิสูจน์ตัวตนเซิร์ฟเวอร์ข้อมูลเมตาแยกต่างหาก
ทำตามการนำเข้าหาก WSDL รากสำเร็จแต่การแก้ไขล้มเหลวในภายหลัง WSDL และสคีมาอื่นอาจใช้โฮสต์หรือโปรโตคอลต่างกัน
เลือกส่วนขยายที่สอดคล้องสำหรับโหมดการดึงอื่น WS-MetadataExchange ใช้แชนเนล ซึ่งฮุกการสร้างคือ GetChannelFactory การตั้งค่า binding และพร็อกซี่ของแชนเนลนั้นไม่ถูกแทนที่โดยทั่วไปด้วยการแทนที่ HttpWebRequest
พร็อกซี่แอปพลิเคชันเริ่มต้นอาจเพียงพอเมื่อคอมโพเนนต์เดิมทั้งหมดที่เข้าร่วมควรใช้ร่วมกัน คลาสย่อยมีไว้สำหรับความเป็นเจ้าของข้อมูลเมตาอย่างชัดเจนภายในตระกูล API นี้ การเรียก SOAP ที่สร้างขึ้นยังคงต้องการการกำหนดค่าการรับส่งข้อมูลขณะรันของตนเอง สำหรับไคลเอนต์ BasicHttpBinding ให้ตรวจสอบ ProxyAddress และ UseDefaultWebProxy ควบคู่กัน