สำหรับการดึงข้อมูลเมตา 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 ควบคู่กัน

บทความที่เกี่ยวข้อง