Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自控制台应用程序的Microsoft Word COM互操作_C#_.net Core_Ms Word_Com - Fatal编程技术网

C# 来自控制台应用程序的Microsoft Word COM互操作

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

我有一个.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-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配置中的权限丢失

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


请访问以下答案。希望,它能帮助您看到使用.net framework应用程序时出现的问题吗?与.net 4.7.2Hi相同的问题,我可以知道,您解决了这个问题吗?我最终成功了,但在随机更改了很多东西之后,我无法告诉您哪一个有效。我还必须取消选中“无论用户是否登录都运行”如下所述: