0

我正在尝试使用 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)).

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

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

更新:

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

更新:铂。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。我将尝试修复此问题,使其指向 Word 2013 而不是 Word 2010 的 WINWORD.exe。

解决方案

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

4

1 回答 1

-1

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

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

如果您正在构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。在Office 服务器端自动化的注意事项文章中阅读有关此内容的更多信息。

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

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

于 2015-10-21T20:41:57.263 回答