COM异常 - 调用被被调用者拒绝并且运行时遇到了致命错误

时间:2015-05-28 12:11:13

标签: vb.net com ms-word

在我的VB.NET应用程序中,我有一个名为Letter的类。在Letter类的构造函数中,我初始化了新的word.application对象。

Sub New()
    _application = New Word.Application
End Sub

最近我开始收到COM异常/错误 - 调用被被调用者拒绝了。在完成我的研究之后,我已经实现了以下链接中建议的解决方案:

Call was rejected by callee PowerPoint Automation

实施后,我有以下代码:

Sub New()
    MessageFilterAPI.RegisterMessageFilter()
    _application = New Word.Application
    MessageFilterAPI.RevokeMessageFilter()
End Sub

此停止的错误出现在我的计算机上(开发环境),但安装了该软件的其他计算机仍会出错。完整的异常消息:

  

使用CLSID创建COM组件的实例   来自IClassFactory的{000209FF-0000-0000-C000-000000000046}失败   由于以下错误:80010001调用被被调用者拒绝。   (来自HRESULT的异常:0x80010001(RPC_E_CALL_REJECTED))

在初始化行_application = New Word.Application上调试时,程序完全崩溃并冻结,但出现以下异常:

  

运行时遇到了致命错误。错误的地址   在线程0x5e48处,位于0x74444ba1。错误代码是0xc0000005。   此错误可能是CLR中的错误,也可能是不安全或不可验证的错误   用户代码的一部分。此错误的常见来源包括用户   COM-interop或PInvoke的编组错误,可能会破坏   叠加。

任何人都知道为什么会这样?这段代码多年来一直没有改变,突然变成了一个问题。

1 个答案:

答案 0 :(得分:2)

这通常是内存问题或安装损坏。所以我会尝试重新安装Office并运行“memtest86”来测试机器上的内存,显示0xc0000005错误