嗨,我创建了windows服务c#来创建一个excel文件。当我在开发环境中安排并在我的id下运行时,它运行得很好。但是,当我使用不同的交互Id运行同一服务时,该服务也是服务器中的管理员帐户,该服务在Excel.WORKBOOK.saveas(object(行失败,并出现以下错误"由于可用内存或磁盘空间不足,Microsoft Excel无法打开或保存更多文档"我已经尝试了net中提供的许多解决方案,以在comconfig中提供权限,并在c:\windows\sys32和syswow64中创建桌面文件夹。但仍然找不到它。只有使用我的id,服务运行良好,但如果出现故障,则任何其他交互服务都可以运行。请帮助
关于Office服务器端自动化的注意事项文章指出:
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务(自动化Microsoft Office应用程序,因为在这种环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。
如果您正在构建一个在服务器端上下文中运行的解决方案,则应尝试使用可安全执行无人值守的组件。或者,您应该尝试找到至少允许部分代码运行客户端的替代方案。如果使用服务器端解决方案中的Office应用程序,则该应用程序将缺乏成功运行所需的许多功能。此外,您将在整体解决方案的稳定性方面承担风险。
如果您只处理开放式XML文档,我建议您使用Open XML SDK 2.5 for Office,否则您可能会考虑使用专为服务器端执行而设计的第三方组件。