C# 来自控制台应用程序的Microsoft Word COM互操作
我有一个.NET Core 3.1控制台应用程序正在使用Word COM interop,但当它尝试创建C# 来自控制台应用程序的Microsoft Word COM互操作,c#,.net-core,ms-word,com,C#,.net Core,Ms Word,Com,我有一个.NET Core 3.1控制台应用程序正在使用Word COM interop,但当它尝试创建Microsoft.Office.interop.Word.application对象时,会引发异常: System.Runtime.InteropServices.COMException (0x80070520): Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-00000
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)
这是我正在使用的构造函数调用:
\u app=新应用程序
{
DisplayAlerts=WdAlertLevel.wdAlertsOne,
可见=假,
FileValidation=MsoFileValidationMode.msoFileValidationSkip,
Caption=“FOO”
};
什么原因导致这种情况?概述
对于任何在2020年12月或更晚的时候偶然发现此问题的人:
我管理一个报表“服务器”(实际上是一个Windows 10 Pro桌面安装),它通过COM互操作依赖Excel自动化。所有报告都通过本机任务计划程序进行计划,并设置为即使未登录也运行(配置为使用域帐户)。从12月的第二周开始,我们所有的Excel自动化都停止运行。我知道这是由环境变化引起的,因为我们的自动化代码在6个月内都没有变化。起初,我认为这是Windows 10 2004/20H2的一个问题(因为这两个更新都是在12月的第一周应用的);然而,尝试和错误似乎都指向前面提到的Windows更新和
我浏览了上述链接问题中建议的疑难解答以及搜索System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject或检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂时显示的其他解决方案,但由于以下错误而失败:80070520。尝试的步骤包括注册表调整、修复Office安装,以及确保Windows或Office没有挂起的更新。最初,重新安装Office似乎是解决方案,因为它解决了第一个问题(或者至少改变了错误)。经过更多的尝试和错误,我无意中找到了实际的解决方案,以及大概的原因
问题
安装Windows 10 2004/20H2和Office 2016(2011版)后,通过Windows任务计划程序计划的Office automation将不会运行
决议
在组件服务>计算机>我的计算机>DCOM配置下,找到Office授权COM Server 16并右键单击它。启动“属性”窗口,然后转到“安全”选项卡。在访问权限标题下,单击编辑。。。“自定义”单选按钮旁边。确保从任务计划程序运行自动化的用户设置在组/用户列表中,并且被授予本地访问和远程访问权限
注释+有用的链接
此问题的根本原因似乎是由于Windows功能更新或Office 2016版本2011更新而导致Office授权服务器的DCOM配置中的权限丢失
以下链接没有让我找到解决方案,但有助于缩小问题范围: