سؤال

أنا أستخدم قناة WCF pollingduplexhttpgbinding لدفع الإشعارات إلى عملاء Silverlight. بالنسبة للجزء الأكبر يعمل بشكل جيد ولكني أقاتله للحصول على بعض وظائف إدارة جلسة قليلة للعمل بشكل صحيح.

المشكلة الأكبر التي أحاول أنها تحاول السماح للخادم بمعرفة العميل قد انتهت مع جلسة ولم تعد تتطلب أي إشعارات. توقف CloseAync Call على العميل عن جانب العميل من القناة من إرسال طلبات إرسال إعلامات جديدة لهذه الجلسة فقط، كما أنه يرسل أيضا طلب صابون مخزم عند الخادم. المشكلة هي جانب الخادم من القناة يرسل بعد 404 قائلا إنه لا يتعرف على إجراء الاختصار. بقدر ما أستطيع أن أرى هذا الخطأ من Internals من قناة PollingDuplexhttpgbinding ولا يقوم الأمر بتقديم الطلب حتى يمكن إغلاق الجلسة بشكل صحيح.

هل صادف أي شخص آخر هذه المشكلة وربما وجدت طريقة حولها؟

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

المحلول

لا يمكن القيام به من قبل المظهر، القضبان على pollingduplexhttpbinding..

نصائح أخرى

حسنا، كانت مقالة الإيقاع رهيبة فقط، وحلت مشكلة ذات صلة بشكل غير مباشر، وقد قضيتها مع Silverlight تعمل ببطء شديد عند القيام بشر دوبلكس عبر HTTP. BSAILILY، تسبب المشكلة بسبب وجود حالة جلسة ASP.net قيد التشغيل في الموقع واستخدام كومة Silverlight's Broserhttp (بدلا من مكدس ClientHTTP).

يهة هناك وظيفة جيدة (في هذه المقالة) لشرح المشكلة:

http:/blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-and-any-work-wcf-service-in-the-same-website-causes- Silverlight - مكالمات to-be-slow.aspx

الإصلاح البسيط، إذا كنت تواجه هذه المشكلة هو تسجيل مسار للحصول على مكدس ClientHTTP قبل استدعاء الخدمة الخاصة بك. يمكن تحقيق ذلك ببساطة عن طريق الاتصال:

WebRequest.RegisterPrefix(requestUri.AbsoluteUri, WebRequestCreator.ClientHttp);

حيث CurrentUri هو URI لخدمتك. أتمنى أن يساعدك هذا.

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