سؤال

لدينا خادم فردي عن بعد يعمل في خدمة Windows منفصلة (دعنا نسميها RemotingService).عملاء RemotingService هم مثيلات ASP.NET (العديد منها).

حاليًا، يقوم العملاء الذين يعملون عن بعد باستدعاء RemotingService ويقومون بالحظر أثناء خدمة استدعاء RemotingService.ومع ذلك، أصبحت خدمة الاتصال عن بعد معقدة بدرجة كافية (مع المزيد من استدعاءات RPC والخوارزميات المعقدة) بحيث يتم حظر سلاسل العمليات العاملة asp.net لفترة طويلة جدًا (4-5 ثوانٍ).

وفق هذه المقالة ام اس دي ان, ، فإن القيام بذلك لن يتسع بشكل جيد لأنه تم حظر مؤشر ترابط عامل asp.net لكل RPC عن بعد.ينصح بالتبديل إلى المعالجات غير المتزامنة لتحرير سلاسل عمليات asp.net.

الغرض من المعالج غير المتزامن هو تحرير مؤشر ترابط تجمع مؤشرات الترابط ASP.NET لخدمة طلبات إضافية أثناء معالجة المعالج معالجة الطلب الأصلي.

يبدو هذا جيدًا، باستثناء أن المكالمة عن بعد ما زالت تشغل مؤشر ترابط من تجمع مؤشرات الترابط.هل هذا هو نفس تجمع مؤشرات الترابط مثل سلاسل الرسائل العاملة asp.net؟

كيف يجب أن أقوم بتحويل خادم المفرد البعيد الخاص بي إلى نظام غير متزامن بحيث أقوم بتحرير سلاسل عمليات asp.net الخاصة بي؟

ربما فاتني بعض المعلومات المهمة، يرجى إعلامي إذا كان هناك أي شيء آخر تحتاج إلى معرفته للإجابة على السؤال.

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

المحلول

الفكرة وراء استخدام ThreadPool هي أنه من خلاله يمكنك التحكم في كمية سلاسل الرسائل المتزامنة، وإذا كانت هذه المواضيع كثيرة جدًا، فإن تجمع سلاسل الرسائل يدير تلقائيًا انتظار سلاسل الرسائل الأحدث.

لا يأتي مؤشر ترابط Asp.Net العامل (AFAIK) من تجمع مؤشرات الترابط ويجب ألا يتأثر بمكالمتك إلى خدمة الاتصال عن بُعد (ما لم يكن هذا معالجًا بطيئًا للغاية، وكانت وظيفة الاتصال عن بُعد لديك مكثفة للغاية على وحدة المعالجة المركزية - حيث في هذه الحالة، سيتأثر كل شيء على جهاز الكمبيوتر الخاص بك).

يمكنك دائمًا استضافة خدمة الاتصال عن بُعد على خادم فعلي مختلف.في هذه الحالة، سيكون مؤشر ترابط العامل asp.net الخاص بك مستقلاً تمامًا عن مكالمة الاتصال عن بُعد (إذا تم استدعاء مكالمة الاتصال عن بُعد في مؤشر ترابط منفصل).

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