读书人

excel历程不能关闭

发布时间: 2013-07-01 12:33:04 作者: rapoo

excel进程不能关闭
服务器读取完excel后想把excel进程关闭,试了下面的方法都不行

if (excelApp != null)
{
//Marshal.ReleaseComObject(excelApp);
excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
//KillExcel(excelApp);
excelApp = null;
}
ReleaseComObject不能关闭进程

private static void KillExcel(Microsoft.Office.Interop.Excel.Application theApp)
{
int id = 0;
IntPtr intptr = new IntPtr(theApp.Hwnd);
System.Diagnostics.Process p = null;
try
{
GetWindowThreadProcessId(intptr, out id);
p = System.Diagnostics.Process.GetProcessById(id);
if (p != null)
{
p.Kill();
p.WaitForExit();
p.Dispose();
}
}
catch (Exception ex)
{

}
}
p.Kill();会报拒绝访问错误
------解决方案--------------------


应该是权限问题了。excel历程不能关闭
[解决办法]
直接Kill 名字Excel的进程
[解决办法]
Insus.NET的做法,是在站点建一个存放临时文件的目录如Temp
所有上传,打开,或处理文件的数据,均把文件摆放在此目录中。由于文件名是使用GUID来处理,因此你每次打开相同的文件,均会是不相同名的文件。程序处理完毕就不必管它了,无需当时就去想办法去把它们移走,删除等。

这样的的话,这个目录的文件那不是越来越多,是的,不错。可以参考下理处理方法:
http://www.cnblogs.com/insus/articles/1431986.html
[解决办法]
我以前的一个帖子 你参考下
老虎传送门
[解决办法]
你写的代码有问题,没有释放资源,被占用着能删掉才怪

读书人网 >asp.net

热点推荐