首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# COM办公自动化- RPC_E_SYS_CALL_FAILED

C# COM办公自动化- RPC_E_SYS_CALL_FAILED
EN

Stack Overflow用户
提问于 2008-09-19 03:24:15
回答 4查看 11K关注 0票数 5

我正在编写一个C#程序,充当PowerPoint 2007插件。在某些机器上,对PowerPoint对象模型的一些调用会抛出带有消息RPC_E_SYS_CALL_FAILEDCOMException。对于如何处理这个错误,或者如何避免这个错误,我找不到任何具体的建议。从谷歌上看,这似乎与消息队列或单线程公寓有关。还是我离得太远了?

错误消息的示例是:

系统呼叫失败。(HRESULT例外: 0x80010100 (RPC_E_SYS_CALL_FAILED)) 在Microsoft.Office.Interop.PowerPoint._Presentation.get_FullName()

不幸的是,这个问题发生在客户端的机器上,所以我没有简单的方法来调试它!当我遇到这个错误时,我应该重新尝试调用吗?

任何帮助我解决这个问题的建议都将不胜感激!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-11-26 21:48:11

我不知道这与您的问题有关,但是您的所有COM调用都必须来自创建外接程序的同一个线程。如果您创建了新线程,则必须特别小心。详细情况见这两篇文章:

  • 在Office外接程序中实现IMessageFilter
  • 为什么您的COMAddIn.Object应该从StandardOleMarshalObject派生
票数 5
EN

Stack Overflow用户

发布于 2008-09-19 04:22:47

您是从一个具有ApartmentState集的线程进行调用吗?如果不是,那可能是罪魁祸首- COM interop对这类事情相当挑剔。

票数 0
EN

Stack Overflow用户

发布于 2008-10-24 18:16:01

客户端的安全设置是什么?客户端的安全设置( Windows/OS设置或PowerPoint/App设置)很可能不允许您的插件通过RPC进行通信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/99271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档