System.Runtime.InteropServices.COMException(0x800A1436)

时间:2017-04-26 21:01:00

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

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

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

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

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以考虑使用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文章中详细了解相关内容。