disconnectedContext MDA

disconnectedContextإدارة التصحيح assهوtant (MDA) هو تنشيط عندما يحاول CLR للانتقال في الشقة dهوconnected أو سياق أثناء معالجة طلب فيما يتعلق كائن COM.

الأعراض

المكالمات التي تم إجراؤها تشغيل وقت تشغيل التفاف للاستدعاء(RCW) يتم تسليمها إلى الأساسية مكون COM في الحيز الحالي أو سياق بدلاً من تلك التي كانت موجودة. Th هو يتسبب فقد عطب أو بيانات إذا كان مكون COM هو ذات مؤشرات ترابط غير متعددة، كما في حالة من مكونات الشقة مؤشر ترابط مفرد (STA). بدلاً من ذلك، إذا كان RCW هو نفسه وكيل، قد يؤدي الاستدعاء في إلقاء COMExceptionHRESULT من RPC_E_WRONG_THREAD.

السبب

شقة OLE أو سياق الذي تم إيقاف عند محاولة CLR إلى الانتقال في إلى عليه. This هو most commonly caused بواسطة STA apartments being shut أسفل قبل all the COM مكونات owned بواسطة the apartment were completely released This can occur كـ a result of an explicit call from user تعليمات برمجية on an RCW أو while the CLR itself هو manipulating the COM مكوّن, for مثال when the CLR هو releasing the COM مكوّن when the associated RCW has been garbage collected.

الدقة

إلى تجنب هذه المشكلة، تأكد من مؤشر ترابط الذي يملك STA لم ينتهي قبل انتهاء تطبيق مع الجميع الكائنات التي تعيش في الشقة. نفس الشيء يحدث سياقات؛ تأكد من سياقات لا إيقاف قبل تطبيق هو finهوhed تماما مع أي مكون من COM مكونات التي تعيش داخل سياق.

التأثير تشغيل وقت التشغيل

MDA هذا أي تأثير تشغيل CLR. ويعلم فقط بيانات حول سياق غير متصلة.

الإخراج

عن ملفات تعريف الارتباط لسياق الحيز غير متصلة أو سياق.

التكوين

<mdaConfig>
  <assistants>
    <disconnectedContext enable="false" />
  </assistants>
</mdaConfig>

راجع أيضًا:

المرجع

MarshalAsAttribute

المبادئ

تشخيص الأخطاء مع المساعدين التصحيح مدارة

تنظيم إمكانية التشغيل المتداخل

موارد أخرى

إمكانية التشغيل المتداخل