System.Runtime.InteropServices.COMException (0x800A1436)

System.Runtime.InteropServices.COMException (0x800A1436)

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

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

ApplicationPool 位于 运行 已拥有共享驱动器权限的域用户帐户下。

有什么建议吗?

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

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

您可以考虑使用 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 可能会表现出不稳定的行为 and/or 死锁。

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