MS office Word 2016 从 2010 升级导致错误“错误:80080005 服务器执行失败”CO_E_SERVER_EXEC_FAILURE.Net Web 应用程序

问题描述

.Net C# Web 应用程序,从其网页之一生成 Word 文档。

在开发服务器中,我们最近将 microsoft office 版本从 2010 升级到 2016。同时初始化 word dll 遇到问题(在另一个环境中我们仍然安装了 office 2010,我们没有看到这个问题,但是 microsoft office从 2010 年升级到 2016 年是强制性的)。所以我需要帮助来解决这个问题。

using Word = Microsoft.Office.Interop.Word; .....

App wrodApp = new Word.Application(); --> 此行导致以下错误

错误:检索具有 CLSID {000209FF-0000-0000-C000-000000000046} 的组件的 COM 类工厂由于以下错误而失败:80080005 服务器执行失败(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))

请告诉我如何解决这个问题?

解决方法

MS 声明如下:

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

如果您正在构建一个在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行的安全组件。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺乏许多成功运行所需的功能。此外,您还要承担整体解决方案稳定性的风险。

Considerations for server-side Automation of Office 文章中阅读更多相关信息。

您可以考虑使用专为服务器端执行而设计的第三方组件。或者,如果您只处理 Open XML 文档,您可以考虑使用 Open XML SDK 2.5 for Office