سؤال

لدي خدمة WCF باستخدام nettcpbinding. المشكلة هي أن مضيف هذه الخدمة غير نشط دائمًا ، لذلك عندما يحاول العميل استخدام الخدمة ، فإنه سينجح طالما كان الخادم على الإنترنت. عندما يقوم الخادم بإعادة تشغيل العميل ، يجب على القناة إعادة إنشاء القناة (تسبب nettcpbinding) باستخدام httpbinding سيحل المشكلة ولكن لا يمكنني استخدام هذا الربط. سؤالي هو: هل هناك أي طريقة للتسبب في "ACT" Nettcpbinding مثل basichttpbinding عند الاتصال بالخدمة (السلوك ؟؟؟) (كل استخدام في وكيل الخدمة يسبب إنشاء اتصال جديد)؟

شكرا ، ليران

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

المحلول

لا إذا كنت تستخدم نفس الوكيل. يمكن للوكالة حسب الهندسة المعمارية إنشاء قناة مرة واحدة فقط. في net.tcp ، ترتبط القناة بالاتصال. لذلك إذا كنت ترغب في فتح اتصال جديد لكل مكالمة ، فما عليك سوى إنشاء وكيل جديد في كل مرة تتصل فيها بالخدمة. سيؤثر هذا على أدائك لأن إنشاء اتصال Net.TCP مكلف.

الطريقة الأفضل هي إعادة تصميم الكود الخاص بك ولف وصول الوكيل الخاص بك. سوف يتعامل Wrapper مع الاستثناء أثناء مكالمة التشغيل من خلال إنشاء وكيل جديد واستدعاء الطريقة على الوكيل الجديد.

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