لاسترداد بيانات تعريف WCF على .NET Framework 4.8.1 في وضع HTTP GET، اضبط طلب بيانات التعريف الأسبق بدلًا من عميل 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 لعنوان WSDL. ضع حساب الوكيل على ذلك الكائن؛ أما مصادقة خادم بيانات التعريف فهي منفصلة.

اتبع عمليات الاستيراد إذا نجح WSDL الجذري لكن فشل التحليل لاحقًا. يمكن أن تستخدم ملفات WSDL ومخططات أخرى مضيفين أو بروتوكولات مختلفة.

اختر الامتداد المقابل لوضع استرداد آخر. يستخدم WS-MetadataExchange قناة، وخطاف إنشائها هو GetChannelFactory؛ ولا تُستبدل إعدادات الربط والوكيل الخاصة بها عالميًا بتجاوز HttpWebRequest.

قد يكفي وكيل تطبيق افتراضي عندما ينبغي أن تتقاسمه جميع المكوّنات القديمة المشاركة. الفئة الفرعية مخصصة لملكية واضحة لبيانات التعريف داخل عائلة API هذه. لا تزال استدعاءات SOAP المولّدة تحتاج إلى إعداد النقل الخاص بها في وقت التشغيل. بالنسبة لعميل BasicHttpBinding، تحقق من ProxyAddress وUseDefaultWebProxy معًا.

مقالات ذات صلة