最近几天都在把客户端的Excel导出功能,转到Web Service中进行导出生成。提供下载或者返回Byte。
在Window7本地测试没有发现什么问题,部署到Server 2003发现批量生成Excel(Save和SaveAs)保存方式都无法删除Excel进程,
网上找了一些资料,各种说法都有,但是自己也改了很多次释放资源代码都不成功。最后发现原来是Windows 组件权限问题。
在Server 2003中需要开放组件的权限。
但是在使用SaveAs方法之后进程也无法删掉,对Excel进行SaveAs保存后使用App.Quit在执行垃圾回收System.GC.Collect()还是不行。
原来在Excel.ApplicationClass方法中如果调用System.GC.Collect()是不能清理本身的,所以不能在创建Excel.ApplicationClass的方法中使用GC垃圾回收。