在服务器上杀死Excel.EXE

Cod*_*yer 11 asp.net excel

可能重复:
如何在C#中正确清理Excel互操作对象

假设ASP.NET Web应用程序在服务器上生成自动Excel报告.处理结束后,我们如何杀死服务器端的Excel.EXE.我故意提出这个,因为我相信垃圾收集器即使在关闭Excel文件后也不会清理Excel可执行文件.

任何指针都会有所帮助?

Gal*_*ian 18

很抱歉这样说,我不是想要聪明,但是...... 不要在服务器上任职!

如果我理解正确的话!:)

编辑:虽然我已经被标记为了这一点,但我永远不会主张在服务器上运行Office - 它已经证明过去对我来说麻烦了.

话虽如此,现在我和Crystal Reports也一样;-)

  • 作为一般原则,我同意,但在现实世界中,有许多实例,Excel是业务的关键部分,并且围绕它构建了许多业务流程.当需要扩展这些时,唯一的选择通常是将Excel作为服务器端组件运行. (3认同)

Jas*_*n Z 6

我同意不在服务器上运行Office.不是我在这件事上有任何选择:)

使用taskkill选项时要记住的一件事是,除非您专门为它(也称为单例)进行规划,否则您可能会运行多个Excel(或任何其他Office应用程序)副本,并无意中关闭了错误的实例.

另请注意,根据http://support.microsoft.com/kb/257757

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或Office在此环境中运行时出现死锁或死锁.

作为替代方案,有一种名为Aspose Cells的产品,它提供的产品旨在允许您以编程方式使用服务器环境中的Excel工作表.作为免责声明,我从未亲自使用过此产品,但我从过去与我合作过的几个人那里听说过它.