【问题标题】:Dependent objects for New-Object -ComObject Word.ApplicationNew-Object -ComObject Word.Application 的依赖对象
【发布时间】:2018-08-18 13:26:10
【问题描述】:

我们创建了多个从 word 文档中读取并提取所需信息的 powershell 脚本。

本地在笔记本电脑上一切正常,但是当我们部署在生产服务器上时......它们不工作。

我们通过 asp.net 网络应用程序运行 powershell 脚本...这就是任何引用 WORD.APPLICATION 的 powershell 脚本都不起作用的地方

我们在生产服务器上部署的组件:

  • 操作系统:Windows Server 2012
  • Powershell:版本 5
  • 已安装 MsOffice 2010
  • Asp.net 4.5 已安装所有组件

我们在 ASP.NET 4.5 Core 中创建了 Web 应用程序,用户上传的文档将根据特定的标准搜索文档中的特定关键字。如果找到关键字,则会显示值。

Asp.net 调用 powershell 脚本,其中包含要搜索的所有文档库代码。一切都在 PS 脚本中执行,除了引用 WORD-APPLICATION 代码的地方。

有人在服务器上部署它们时遇到过任何问题吗?

标签: powershell


【解决方案1】:

必读:

https://support.microsoft.com/en-us/help/257757/considerations-for-server-side-automation-of-office

所有当前版本的 Microsoft Office 都经过设计、测试和配置,可作为最终用户产品在客户端工作站上运行。他们假设一个交互式桌面和用户配置文件。它们不提供满足设计为无人值守运行的服务器端组件需求所需的重入性或安全性级别。

...

除了技术问题,您还必须考虑许可问题。当前的许可准则禁止在服务器上使用 Office 应用程序来服务客户端请求,除非这些客户端本身具有 Office 的许可副本。最终用户许可协议 (EULA) 未涵盖使用服务器端自动化向未经许可的工作站提供 Office 功能。

如您所见,您正在尝试的方案不受官方支持,而且许可方面非常昂贵,因为您正式要求每个调用您的功能的用户或您的用户都需要一个 Office 许可证调用功能。

有一个官方的 Open XML SDK,它将允许服务器端处理基于 XML 的办公文档:

如果这还不够,还有许多 3rd 方库提供服务器端执行并且不需要办公室许可,有些是商业的,有些是开源的:

有一些方法可以让您的代码从 ASP.NET 应用程序在服务器上运行。它们是官方不受支持的,它们会使您的服务器面临许多额外的安全问题,从许可的角度来看它们非常昂贵,并且不能保证它们会继续工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多