解决部署在Window server 2003 上Excel.exe进程问题
方法一:在方法中使用Com组件,并在使用完使Com引用计数减1以及消除引用,在调用该方法后进行垃圾回收(必须在该方法外),若不出现异常是均能正常结束Excel进程。
方法二:强制结束
解决此类问题,有一个方法可以借鉴,就是杀死进程的方法,但是有一定的风险,要注意,具体方法如下:
操作进程有一定的风险,所有首先要有此类权限,添加权限方法,在web.Config里面添加权限<identity impersonate="true" userName="登录名" password="密码 "/>
杀死进程方法 publicstaticvoid KillProcess(string processName)
{
system.Diagnostics.Process myproc = new system.Diagnostics.Process(); //得到所有打开的进程
try
{
foreach (Process thisproc in Process.GetProcessesByName(processName))
{ if (!thisproc.CloseMainWindow())
{
if(thisproc!=null)
thisproc.Kill();
} }
}
catch (Exception Exc)
{ throw Exc; }
}
在操作完Excel后,调用杀死进程方法就可以了,下一次就会正常调用