【问题标题】:Start Domino service and word启动 Domino 服务和 word
【发布时间】:2019-10-16 10:31:21
【问题描述】:

我想从 Lotus Script 中的代理修改 word 文档。 Domino 服务器作为具有管理员用户计数的服务启动。 Word 文档附加在 Lotus Notes 文档中。我将文档提取到 Domino 可以访问的文件夹中。 当 Domino 服务器(作为服务)运行该进程时,Domino 会显示错误。但是当我将 Domino 服务器作为应用程序启动时,该进程运行良好并且没有出现任何错误。 脚本代码如下:

Set rtItem = doc_perfil.GetFirstItem(campo)
Set obj = rtitem.EmbeddedObjects(0) 
sFile = RUTA + "\" + ReplaceSubstring(nameNewFile, "/", "-") + ".docx"
Call obj.ExtractFile(sFile)
OLE_OBJECT = "word.application"     
Set Word = CreateObject (OLE_OBJECT)
Set templt = Word.Documents.Add (sFile)

产生错误的行是“Set templt = Word.Documents.Add (sFile)

【问题讨论】:

  • 当您将 Domino 作为常规应用程序运行时,您在运行代理程序时是否看到任何 UI 活动?如果我没记错的话,所有现代 Windows Server 版本都具有阻止服务访问 UI 的安全功能。由于 OLE 类实际上启动应用程序并发送自动化指令(与 COM 类相反,它提供对应用程序功能的直接访问),因此它们会受到此限制的影响。我不记得是否有任何方法可以覆盖它。
  • 我猜变量 RUTA 包含一个网络位置的路径......不幸的是,Windows 服务没有网络凭据......如果他们有:网络驱动器将不会被映射到特殊上下文,即使它在登录会话中...尝试使用本地路径来找出问题是否存在。这个或“UI”——理查德提到的问题。
  • 您是否尝试过在服务帐户(不是 localSystem)下运行 domino?

标签: windows lotus-domino lotusscript


【解决方案1】:

首先,Microsoft 完全不支持在服务器上运行 Word。

解决此问题的快速而肮脏的方法是不将 Domino 作为服务运行。服务无法与 OLE 所需的 UI 交互。

这样做的缺点是,如果 Windows 服务器重新启动,则需要手动重新启动 Domino 服务器。

正确的方法是使用 docx4j 或 Apache POI 之类的库在 java 中执行您需要的操作。由于除了打开 word doc 之外您没有包含任何代码,我无法进一步评论什么是合适的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多