【问题标题】:Microsoft Word COM interop from console application来自控制台应用程序的 Microsoft Word COM 互操作
【发布时间】:2020-11-10 23:46:20
【问题描述】:

我有一个使用 Word COM 互操作的 .NET Core 3.1 控制台应用程序,但当它尝试创建 Microsoft.Office.Interop.Word.Application 对象时会引发异常:

System.Runtime.InteropServices.COMException (0x80070520): Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070520 A specified logon session does not exist. It may already have been terminated. (0x80070520).
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& hasNoDefaultCtor)
   at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type)

这是我正在使用的构造函数调用:

_app = new Application
{
    DisplayAlerts = WdAlertLevel.wdAlertsNone,
    Visible = false,
    FileValidation = MsoFileValidationMode.msoFileValidationSkip,
    Caption = "FOO"
};

是什么原因造成的?

【问题讨论】:

标签: c# .net-core ms-word com


【解决方案1】:

概述

对于 2020 年 12 月或之后遇到此问题的任何人:

我通过 COM 互操作管理依赖 Excel 自动化的报告“服务器”(实际上是 Windows 10 Pro 桌面安装)。所有报告都是通过本机任务计划程序安排的,并且即使在未登录时也设置为运行(这被配置为使用域帐户)。从 12 月的第 2 周开始,我们所有的 Excel 自动化程序都停止运行。我知道这是由环境变化引起的,因为我们的自动化代码在 6 个月内都没有改变。最初,我认为这是 Windows 10 2004/20H2 的问题(因为两个更新都是在 12 月的第一周应用的);但是,反复试验似乎指向上述 Windows 更新和latest Office 2016 update (Version 2011)

我浏览了上述链接问题中建议的故障排除以及在搜索System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject检索组件的 COM 类工厂时出现的其他解决方案由于以下错误,CLSID {00024500-0000-0000-C000-000000000046} 失败:80070520。尝试的步骤包括注册表调整、修复 Office 安装,以及确保没有针对 Windows 或 Office 的未决更新。最初,重新安装 Office 似乎是解决办法,因为它解决了第一个问题(或至少改变了错误)。经过更多的尝试和错误,我偶然发现了实际的解决方案,以及大概的原因。

问题

在安装 Windows 10 2004/20H2 和 Office 2016(2011 版)后,通过 Windows 任务计划程序计划的办公自动化将不会运行。

分辨率

在组件服务 > 计算机 > 我的电脑 > DCOM 配置下,找到 Office Licensing COM Server 16 并右键单击它。启动属性窗口,然后转到安全选项卡。在访问权限标题下,单击自定义单选按钮旁边的编辑...。确保从任务计划程序运行自动化的用户设置存在于组/用户列表中,并且被授予本地访问和远程访问权限

笔记+有用的链接

此问题的根本原因似乎是由于 Windows 功能更新 Office 2016 版本 2011 更新导致 Office 许可服务器的 DCOM 配置中的权限丢失。 p>

以下链接没有让我找到解决方案,但有助于缩小问题范围:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 2012-03-03
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
相关资源
最近更新 更多