Word 互操作:可见始终为 false

Word interop: Visible always false

我尝试像下面这样打开 word:

Word.Application app = new Word.Application();
app.Visible = true;
Console.WriteLine($"Visible {app.Visible}");

当 运行 在我的开发机器(Windows 10,Office 365)上运行此代码时,出现 Word(如预期的那样)并且输出为:

Visible: true

当运行在生产机器(Windows Server 2019,Word 2019)上使用此代码时,Word 不会出现,输出为:

Visible: false

生产机器一定有问题,一周前一切正常。

Windows 事件日志没有显示任何指向此问题的信息。重新安装 Word 没有帮助。手动启动 Word 时,它正常启动并按预期显示。

有谁知道如何进一步调查或导致此问题的原因是什么?

编辑 乳清我这样修改代码:

Word.Application app = new Word.Application();
app.Visible = true;
app.Activate(); // System.Runtime.InteropServices.COMException

...我得到一个异常:

Anwendung kann nicht aktiviert werden. HRESULT:0x800A11F9

我找到了以下文章 COM Exception 0x800A11F9 - Cannot activate application,但这并没有提供解决方案。 HRESULT:0x800A11F9

我运行以管理员身份申请。

我终于解决了问题。

另一个应用程序更改了 dcomcnfg 中的 Word 安全设置。

我将设置更改为以下(德语/英语):

  • 一般: Authentifizierungsebene: Keine / 身份验证级别:None

  • 安全性:为所有点选择设置,并将所有权限授予Administrators/Remotedesktop用户(生产服务器充当 终端服务器)

  • 身份:选项Der Benutzer, der die Anwendung startet. / 启动应用程序的用户。

dcomcnfg 中,Word 不是按名称而是按 AppId 列出的。为了找出 Word 确实有哪个 AppId,我发现了这个 article,它指出

Look for HKEY_CLASSES_ROOT\CLSID{00020906-0000-0000-C000-000000000046}