Vb.net 尝试创建Microsoft.Office.Interop.Word.Application的新实例时发生ComException

Vb.net 尝试创建Microsoft.Office.Interop.Word.Application的新实例时发生ComException,vb.net,office-interop,word-2013,Vb.net,Office Interop,Word 2013,我正在尝试使用visual basic创建word文档。我发现这可以使用Microsoft.Office.Interop.Word对象来完成 我在网上找到了一些关于如何以编程方式创建word文档的教程 我创建了一个简单的windows窗体应用程序。单击按钮时,将创建word文档。我确保在应用程序中添加对Microsoft.Office.Interop.Word的引用 我的问题是,此时会不断抛出错误: app=新的Microsoft.Office.Interop.Word.Application

我正在尝试使用visual basic创建word文档。我发现这可以使用Microsoft.Office.Interop.Word对象来完成

我在网上找到了一些关于如何以编程方式创建word文档的教程

我创建了一个简单的windows窗体应用程序。单击按钮时,将创建word文档。我确保在应用程序中添加对Microsoft.Office.Interop.Word的引用

我的问题是,此时会不断抛出错误:

app=新的Microsoft.Office.Interop.Word.Application

错误是:

发生异常

mscorlib.dll中首次出现类型为“System.Runtime.InteropServices.COMException”的异常

其他信息:检索CLSID为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx的组件的COM类工厂失败,原因是以下错误:80080005服务器执行失败HRESULT异常:ox80080005 COE_服务器执行失败

我已经了解到需要执行以下操作,因此我已经确保在我的机器上安装了word 2013,并且在应用程序的属性中将目标CPU设置为x64

如果有人知道我遗漏了什么,或者我做错了什么,我会感谢你的帮助

更新:

我已经在另一台机器上测试了我的代码,它运行正常。所以这个错误的来源不是代码

更新:Pt。二,

我一直在做更多的研究,我相信我可能会越来越接近问题的根源。我进入了注册表,它无法与之通信的本地服务器似乎指向WINWORD.exe,这是有道理的。没有意义的是,它正在查找错误的WINWORD.exe。我将尝试修复此问题,使其指向Word 2013的WINWORD.exe,而不是Word 2010

解决方案


最终解决我问题的是对办公室进行快速修复。我进入“控制面板”、“程序和功能”,选择“办公室”,按下“更改”按钮,然后选择“快速修复”。我不知道是什么导致事情变得一团糟,但这确实解决了我的问题

在哪里运行代码?它是Windows服务还是ASP.NET应用程序

Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在该环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁

如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用安全的组件来无人值守地执行。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果使用服务器端解决方案中的Office应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将面临整体解决方案稳定性方面的风险。在文章中阅读更多关于这方面的内容

您可能会发现现有线程存在以下相同问题:


最后,如果所有提到的信息都与您的情况无关,我建议您修复办公室。它的windows注册表项似乎有问题

它试图启动Word,但没有成功,它立即失败。这种情况会发生,尤其是在程序正常完成之前调试并停止程序时。这样Word就可以运行了,不用多久就会有太多的副本处于活动状态,并且操作系统无法创建另一个副本。使用任务管理器的“进程”选项卡查看并杀死它们。我打开了任务管理器,查看了“进程”选项卡内部,没有运行WinWord.exe的实例。然后,您必须找到它无法启动的另一个原因。重新启动机器,在事件日志中查找任何通知,禁用反恶意软件,重新安装office,尝试另一台机器,诸如此类。我在另一台机器上运行了我的代码,它确实起了作用。这让我觉得是电脑而不是密码。我查看了事件日志,确实发现了一个错误。它说服务器没有在要求的超时时间内向DCOM注册。我现在正试图对这个错误做一些研究。所有的东西都在我的机器上。我正在尝试使用windows窗体应用程序生成文档。如果我按下按钮,它将生成文档。请尝试修复Office。看起来它的windows注册表项出了问题。这是我今天做的第一件事,而且成功了。我不知道是什么原因导致了这一切,但现在一切都正常了。如果你把你的评论移到一个答案上,我会把它标记为解决方案。实际上,我在这里回复之前更改了它。