我有一个Windows服务,可以激活Interop powerpoint Application类。 它使用控制台工作正常但当我尝试在我的服务器上运行它作为Windows服务(Windows Server 2012)时,当我使用app.open方法时它会抛出COMException 当我在我的电脑上运行Windows服务时,它也可以正常工作 注意:我已在我的服务器上安装了Microsoft Office 2013,并在C:\ Windows \ System32 \ config \ systemprofile和SystemWOW64中添加了一个Desktop文件夹
异常详细信息:System.Runtime.InteropServices.COMException:错误HRESULT E_FAIL已从调用COM组件返回
提前致谢
答案 0 :(得分:0)
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。
作为一种解决方法,您可以考虑使用Open XML SDK,有关详细信息,请参阅Welcome to the Open XML SDK 2.5 for Office。