使用c#编写的Excel自动化通过Windows服务在安装了Office 365的机器上失败
本文关键字:安装 Office 机器 服务 失败 Windows Excel 自动化 使用 | 更新日期: 2023-09-27 18:13:38
我正在使用c#编写的Windows Service。通过这个Windows服务,我正在以编程的方式自动化Excel。
Excel.Application excel = Excel.Application();
这段代码在所有版本的Excel(2003、2007、2010、2013)中都能正常工作。最近我在我的电脑上安装了Office 365。突然,当我使用上面的调用自动化Excel时,我得到以下异常:
为CLSID为{00024500-0000-0000-C000-000000000046}的组件检索COM类工厂失败,原因是以下错误:80080005服务器执行失败(异常来自HRESULT: 0x80080005 (coe_server_exec_failure))
有谁能告诉我,在通过Windows Service自动化Office 365 Excel时,有什么特别需要考虑的吗?
微软目前不建议,也不支持,从任何无人值守的、非交互式的客户端应用程序或组件(包括ASP、ASP、ASP、ASP和ASP. xml)自动化Microsoft Office应用程序。. NET、DCOM和NT服务),因为在此环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。
如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用那些对于无人值守执行是安全的组件。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果从服务器端解决方案使用Office应用程序,则该应用程序将缺乏成功运行所需的许多功能。此外,您将在整个解决方案的稳定性方面承担风险。请参阅Office服务器端自动化的注意事项一文了解更多信息。
您可以考虑使用Open XML SDK,请参阅EWS Managed API、EWS和Exchange中的web服务以获取更多信息。或为服务器端执行而设计的任何第三方组件。