0

我只是想使用 Microsoft Interop Word 用我的 asp net vb net webform 站点填充一个单词点文件(使用书签)。

它在我的 IIS Express 上完美调试,但在我的 Windows Server 2016 / IIS 10 上崩溃。

Dim oWord As Word.Application
oWord = CreateObject("Word.Application")

服务器崩溃并显示如下消息:

Cannot create ActiveX component.(原始错误消息:Impossible de créer le composant ActiveX。)

我正在寻找修复程序,但很多关于此错误的帖子都很旧。

我试图检查服务器注册表,密钥 {000209FF-0000-0000-C000-000000000046} 在这里,Microsoft Word 应用程序作为数据。

在服务器上,Microsoft Office 2016 与 Word 一起安装。

谢谢

编辑 12/08/2020:问题是关于 Interop Word 的服务器使用情况。为了解决这个问题,我不得不改用 OpenXML。

4

3 回答 3

1

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

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

如果您只处理开放 XML 文档,您可以考虑使用 Open XML SDK。有关详细信息,请参阅欢迎使用 Open XML SDK 2.5 for Office

否则,您可以使用任何为服务器端执行而设计的第三方组件(例如 Aspose)。

于 2019-10-15T10:45:10.527 回答
0

ASP.NET 无法创建 ActiveX 组件

这个链接实际上是我正在搜索的内容,但我的 DCOM 配置中没有任何 Microsoft Word 应用程序。

于 2019-10-15T12:01:11.543 回答
0

在大多数情况下(默认情况下),从 VS 启动的本地进程内 Web 服务器(快速)作为 x32 位 Web 服务器运行。您的实际 Web 服务器很可能作为 x64 位服务器运行。因此,您需要安装 + 使用 x64 位版本的 word。(你想在服务器上安装office x64)。

如前所述,这对于 Web 服务器代码来说往往不是一个好主意

于 2019-10-16T02:30:52.037 回答