C#在Web项目中关闭Excel进程的方法

今天遇到了一个问题:在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快乐。

posted @ 2010-04-30 21:58  肖俊峰  阅读(4003)  评论(19编辑  收藏  举报