【问题标题】:Word interop: Visible always falseWord 互操作:可见总是错误的
【发布时间】:2019-09-23 17:05:34
【问题描述】:

我尝试打开如下单词:

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

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

可见:真实

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

可见:假

生产机器上一定有问题,因为直到一周前一切都很顺利。

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

我以管理员身份运行应用程序。

【问题讨论】:

  • 尝试在生产机器上重新安装word..
  • 重新安装 word 没有帮助。
  • 当您尝试在该计算机上以最终用户身份启动 Word 时会发生什么?
  • Word 正常启动并按预期显示。它仅在使用 Interop 时不可见。
  • 阿比,记得用@符号“ping”,否则没人会看到你在cmets中回答了。我很好奇答案是什么,所以才看到你的评论^^

标签: c# ms-word office-interop word-interop


【解决方案1】:

我终于解决了这个问题。

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

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

  • 常规Authentifizierungsebene:Keine / 身份验证级别:无

  • 安全性:选择所有点的设置并将所有权限授予管理员/远程桌面用户(生产服务器充当 终端服务器)

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

dcomcnfg 中,Word 不是按名称列出的,而是按 AppId 列出的。为了找出哪个 AppId Word 确实有,我找到了这个 article 声明

寻找 HKEY_CLASSES_ROOT\CLSID{00020906-0000-0000-C000-000000000046}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多