سؤال

لقد تم استخدامنا PollingDuplexHttpBinding لبعض الوقت للقيام به Pub/Sub المراسلة. لدينا طرق لا تُرجع النتائج التي تتيح للعملاء الاشتراك في بعض تغذية البيانات ثم تقوم الخدمة بإعادة البيانات مرة أخرى عبر CallBack انكماش.

فقط الآن لقد أضفنا بعضًا Request/Reply طرق لنا OperationContract. لأن العملاء هم Silverlight 3 تسمى هذه الطرق باستخدام async Begin() End() نمط. المشكلة هي أننا لا نستطيع الحصول على هذا للعمل باستخدام PollingDuplexHttpBinding. نحصل دائمًا على الخطأ التالي (عند استخدام مكدس العميل HTTP):

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

مع مكدس المتصفح نحصل عليه HTTP 500: Not Found.

عند التحول إلى BasicHttpBinding ال Request/Reply تسمى الأساليب جيدة تمامًا ، ولكن من الواضح Pub/Sub لا يمكن استخدام الطرق مع هذا الربط.

يمكننا استخدام نقاط نهاية منفصلة لكل نوع من الرسائل ، ولكن لن نفضل ذلك ويبدو أنه من الغريب أن يكون الربط يدعم فقط Pub/Sub نمط (على الرغم من أن هذا هو الدافع ل PollingDuplexHttpBinding).

هل يمكن لأحد أن يزيل هذا بالنسبة لي؟ هل هو ممكن؟

هل كانت مفيدة؟

المحلول

لم نفعل هذا للعمل. نحن نستخدم Basichttpbinding لجميع عمليات طلبنا/الرد لدينا بين تطبيقات Silverlight 4 وخدمات WCF 4 الخاصة بنا. هذه كلها مكالمات طريقة غير متزامنة (يجب أن تكون مع Silverlight) لخدمات لكل مكالمة. بالنسبة للمواقف التي يجب علينا القيام بها في دفع الخادم ، لدينا خدمة WCF المليئة بالجلسة التي تحافظ على اتصال PollingDuplexHttPbinding بعميل Silverlight ونستخدم عقود رد الاتصال بطرق أحادية الاتجاه لإجراء المكالمات.

لا يمكن أبدًا الحصول على عمليات الطلب/الرد للعمل مع PollingDuplexHttpbinding ، ولكن لم يجد أبدًا سلطة في هذا الشأن أيضًا ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top