今天遇到了一个问题:在Web程序中调用了Excel的COM组件
结果在每次调用一次后,任务管理器都会产生一个EXCEL.EXE的进程
这可以致命的占内存与CPU啊
然后想着去关闭进程或释放资源
先后尝试了两种方法(在操作完Excel后):
1. Process.kill();
2.GC.Collect();
第一种方法,系统抛出异常,提示:拒绝访问
第二种方法,执行后没有任何变化,任务管理器中的EXCEL.EXE进程仍然在
然后,进行了Google之旅
查询发现网上大多都是这两种方法
还有说在配置文件中加身份验证的(我没有尝试)
搜索一阵时间后,无果!!
然后把上两种方式删除,
尝试把操作Excel的方法里面不用kill,也不释放资源
在调用了操作Excel方法后,比如 bool ret = DoExcel();
紧跟着用GC.Collect();
这样查看一下结果 ---- 惊喜出现了!
释放成功,EXCEL.EXE进程在操作完后自动关闭了。
【以上情况是我在Win7下面遇到,不知道其它Server系统有没有此情况】
祝大家5.1快乐。