2017-08-04 161 views
0

我想以编程方式编辑Word文档。然而,当我调试,并首次尝试创建一个Word.Application,我得到NetOffice越来越80080005服务器执行失败

Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

我看到Word.Interop不支持了,所以我就开始使用NetOffice,但什么都没有改变,所以也许我没有改变基础功能。

我已经尝试了许多DCOM配置,并以管理员身份运行我的Visual Studio实例,但没有任何更改。当前身份验证级别为无,我指定“此用户”并使用具有所有安全权限的帐户。我以前也尝试过交互式用户和启动用户。我之前从来没有遇到过调试器的问题,只要将它部署到服务器上,就会让我感到困惑。

我正在运行Windows 8.1(64位)和Office 2013(32位)。我会很感激任何想法。 NetOffice对此问题是否有影响?谢谢。

+0

我认为如果您查看事件查看器,您可以获得更多信息 – Malick

+0

在窗口的系统日志中,我看到事件ID 10010,服务器在所需的超时时间内未向DCOM注册。这是否给你任何想法?我使用谷歌搜索,但迄今没有任何效果。我不是事件查看器的主人。我应该看看有其他地方吗? – erosebe

+0

它看起来像一个普通的错误消息。如果它只出现在调试模式下,你可以尝试在第一次调用Word.Application之后放置你的调试中断,看看它是否有效,也许调试模式对于客户端的最长等待时间(超时)来说太慢了。我没有别人的想法对不起。 – Malick

回答

1

参见You may receive an "Error code 80080005 -- server execution failed." error message when you start many COM+ applications

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

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

如果仅处理开放的XML文档,请考虑使用Open XML SDK,有关更多信息,请参阅Welcome to the Open XML SDK 2.5 for Office。或者只是尝试使用为服务器端执行而设计的任何第三方组件组件。

P.S. NetOffice不会帮助您避免此类问题,因为它基于COM自动化技术。