سؤال

أنا أكتب برنامج C# بمثابة PowerPoint 2007 المساعد.على بعض الأجهزة بعض المكالمات إلى طراز كائن PowerPoint رمي COMException مع الرسالة RPC_E_SYS_CALL_FAILED.لم أتمكن من العثور على أي مشورة محددة بشأن ما يجب القيام به بشأن هذا الخطأ ، أو كيفية تجنب ذلك.من غوغلينغ يبدو أن تفعل شيئا مع انتظار الرسائل أو واحدة مترابطة الشقق.أو أنا في الطريق ؟

مثال على رسالة الخطأ:

النظام فشل استدعاء.(استثناء من HRESULT:0x80010100 (RPC_E_SYS_CALL_FAILED))
في Microsoft.مكتب.إمكانية التشغيل المتداخل.PowerPoint._Presentation.get_FullName()

للأسف المشكلة تحدث على العميل آلة, لذلك ليس لدي أي طريقة سهلة تصحيح ذلك!وأود أن مجرد المحاولة المكالمات كلما كنت تحصل على هذا الخطأ ؟

أي نصيحة تساعدني في حل هذه المشكلة سيكون موضع تقدير كبير!

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

المحلول

أنا لا أعرف انها تتعلق المشكلة, لكن كل ما تبذلونه من المكالمات COM يجب أن يأتي من داخل نفس الموضوع الخاص بك الوظيفة الإضافية التي تم إنشاؤها على.إذا قمت بإنشاء مواضيع جديدة يجب أن تأخذ الرعاية الخاصة.التفاصيل الموضحة في هاتين المادتين:

نصائح أخرى

هل جعل من الموضوع مع ApartmentState ؟ إن لم يكن, قد يكون الجاني - COM interop جدا صعب حول هذا النوع من الشيء

ما هي إعدادات الأمان من العميل ؟ فمن الممكن تماما أن إعدادات الأمان من العميل (Windows/إعدادات نظام التشغيل أو PowerPoint/إعدادات التطبيق) لن تسمح المكونات في التواصل عبر RPC.

هذا يمكن بسهولة جدا أن يحدث إذا قمت بإجراء أي مكالمات إلى طراز كائن Powerpoint من مؤشر ترابط خلفية.واحد من المعقول السيناريو هو وجود مؤقت أن يتحقق دوريا نوعا من قيمة الحالة.إذا, عندما الموقت الحرائق, Powerpoint مشغول (على سبيل المثال مربع حوار مفتوح) الدعوة سوف تفشل.

Microsoft هذه المقالة لمحة عامة عن خيوط الدعم في المكتب:http://msdn.microsoft.com/en-us/library/8sesy69e.aspx

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