COMExcepton发生尝试创建Microsoft.Office.Interop.Word.Application的新实例

时间:2015-10-21 15:59:49

标签: vb.net office-interop word-2013

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

我在网上找到了一些关于如何以编程方式创建word文档的教程(https://support.microsoft.com/en-us/kb/316384)。

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

我的问题是此时出现错误:

app = New Microsoft.Office.Interop.Word.Application

错误是:

COMException occurred

A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll

Additional information: Retrieving the COM class factory for component with CLSID (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: ox80080005 (COE_SERVER EXEC FAILURE)).

我已经读到需要完成以下工作,所以我确保在我的机器上安装了单词2013,并且我已将目标CPU设置为应用程序属性中的x64。

如果有人对我遗失的内容有所了解,或者我做错了什么,我将不胜感激。

更新

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

更新:Pt。 2

我一直在做更多的研究(http://www.microsoft.com/technet/support/ee/transform.aspx?ProdName=Windows+Operating+System&ProdVer=5.2&EvtID=10010&EvtSrc=DCOM&LCID=1033),我相信我可能会越来越接近问题的根源。我已经进入了注册表,似乎它无法与之通信的本地服务器指向WINWORD.exe,这是有道理的。没有意义的是它正在寻找错误的WINWORD.exe。我将尝试解决此问题,因此它指向WINWORD.exe for Word 2013而不是Word 2010.

解决方案

最终修复我的问题是在办公室进行快速修复。我去控制面板,程序和功能,选择办公室,按下更改按钮,并选择快速修复。不知道是什么导致事情搞砸了,但这确实解决了我的问题。

1 个答案:

答案 0 :(得分:-1)

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

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

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。

您可能会发现现有线程中描述的问题相同:

最后,如果所有提到的信息与您的案例无关,我建议修复Office。看起来它的Windows注册表项有问题。