【问题标题】:Error Office.Interop.Word on Windows Server 2019Windows Server 2019 上的错误 Office.Interop.Word
【发布时间】:2021-10-20 05:46:57
【问题描述】:

我的 .NET 应用程序出现问题,该应用程序在 Windows Server 2019 上无法正常运行。问题在于使用 Microsoft.Office.Interop.Word 库。服务器上安装激活Office 2019,Word正常运行。 有趣的是,如果我将应用程序作为带有 exe 文件的控制台应用程序启动,那么一切都会运行并且进程正确完成,但是如果我尝试使用任务计划程序运行应用程序或者我将应用程序更改为 Windows 服务,那么应用程序会返回异常。当应用程序尝试创建或添加文档 Microsoft.Office.Interop.Word.Application.Documents.Add(...) 时发生异常。

我在带有 MS Office 的旧 Windows 服务器上使用了相同的进程(应用程序),并且一切正常运行,无一例外。

你有什么想法,哪里可以解决问题?一些权限?

我尝试了不同的步骤和配置,但没有成功。 例如,我在 C:\Windows\System32\config\systemprofile

C:\Windows\SysWOW64\config\systemprofile

或者我在组件服务中更改了 Office DCOM 的基本权限。但没有任何帮助。

非常感谢。

例外:

System.Runtime.InteropServices.COMException (0x80010105):服务器抛出异常。 (来自 HRESULT 的异常:0x80010105 (RPC_E_SERVERFAULT))

代码:

appWord = new Application();
appWord.Visible = true;
wordDocument = appWord.Documents.Add(Template: Path.GetFullPath(...), Visible: false);
appWord.Visible = false;

【问题讨论】:

    标签: c# .net ms-word office-interop windows-server-2019


    【解决方案1】:

    如果我尝试使用任务计划程序运行应用程序,或者我将应用程序更改为 Windows 服务,那么应用程序返回异常

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

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

    Considerations for server-side Automation of Office 文章中了解更多信息。

    如果您只处理开放的 XML 文档,您可以考虑使用Open XML SDK 作为一种可能的解决方法。否则,您可以查看为服务器端执行而设计的第三方组件。

    【讨论】:

    • 感谢您的回答。我知道,Microsoft Office 库不支持服务器端操作,但过去一切正常,并且仍然适用于其他项目。我已经在使用 OpenXML,但是这个库无法将文档从 DOCX 导出到 PDF,这是一个主要问题。我目前正在使用 Microsoft Office 库来执行此操作。我会尝试找到另一个解决方案。
    猜你喜欢
    • 2021-11-29
    • 2019-11-01
    • 2021-04-15
    • 2020-07-06
    • 2021-08-22
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多