在我的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的编组错误,可能会破坏 叠加。
任何人都知道为什么会这样?这段代码多年来一直没有改变,突然变成了一个问题。
答案 0 :(得分:2)
这通常是内存问题或安装损坏。所以我会尝试重新安装Office并运行“memtest86”来测试机器上的内存,显示0xc0000005错误