【问题标题】:System.Runtime.InteropServices.COMException (0x800A1436)System.Runtime.InteropServices.COMException (0x800A1436)
【发布时间】:2017-04-26 21:00:59
【问题描述】:

我们正在尝试使用 MVC 应用程序上的 Office 互操作服务打开位于共享驱动器上的 Word 模板。该解决方案在本地运行,但一旦部署到服务器,就会出现以下消息:

The File was not created: System.Runtime.InteropServices.COMException (0x800A1436): This file could not be found

ApplicationPool 正在一个已拥有共享驱动器权限的域用户帐户下运行。

有什么建议吗?

【问题讨论】:

  • 驱动器可能未映射到您使用的帐户中。

标签: c# asp.net-mvc office-interop comexception interopservices


【解决方案1】:

您可以考虑使用 Open XML SDK 来处理开放 XML 文档 (.docx),请参阅 Welcome to the Open XML SDK 2.5 for Office。或为服务器端执行而设计的任何其他第三方组件(例如,Aspose)。

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

如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。在Considerations for server-side Automation of Office 文章中阅读更多相关信息。

【讨论】:

    【解决方案2】:

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

    不支持使用 Interop 的服务器端自动化办公,请尝试使用基于 XML 的方法,例如 NuGet 提供的 ClosedXML。

    【讨论】:

      猜你喜欢
      • 2011-09-09
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 2011-05-15
      • 2021-09-07
      相关资源
      最近更新 更多