在 windows 服务中使用 inropservices.powerpoint

Using inropservices.powerpoint in windows service

我有一个 windows 服务可以激活 Interop powerpoint 应用程序 class。 它使用控制台工作正常但是当我尝试 运行 它作为我服务器上的 windows 服务时(Windows Server 2012)当我使用 app.open 方法时它抛出 COMException 当我 运行 我的电脑上的 windows 服务也能正常工作 注意:我已经在我的服务器上安装了 Microsoft Office 2013,并在 C:\Windows\System32\config\systemprofile 和 SystemWOW64

中添加了一个 Desktop 文件夹

异常详细信息:System.Runtime.InteropServices.COMException:调用 COM 组件返回错误 HRESULT E_FAIL

提前致谢

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

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

作为解决方法,您可以考虑使用 Open XML SDK,有关详细信息,请参阅 Welcome to the Open XML SDK 2.5 for Office