Interop Excel not closing process
asp.net, c#, excel, office-interop, visual-studio-2010
Solution
Try
Process excelProcess = Process.GetProcessesByName("EXCEL")[0];
if (!excelProcess.CloseMainWindow())
{
excelProcess.Kill();
}
Problem
I have been struggling with this problem for a couple of days, I have made reasearch and applied all the suggestions I found on various forums but I'm still unable to solve it. My problem is with excel using interop library, I have an excel file used as template, so I am opening it and saving in a new location with a new name. Everything works great except that the Excel process keeps runing after the file is created and closed. This is my code ``` protected string CreateExcel(string strProjectID, string strFileMapPath) { string strCurrentDir = HttpContext.Current.Server.MapPath("~/Reports/Templates/"); string strFile = "Not_Created"; Application oXL; Workbook oWB; oXL = new Application(); oXL.Visible = false; Workbooks wbks = oXL.Workbooks; //opening template file oWB = wbks.Open(strFileMapPath); oXL.Visible = false; oXL.UserControl = false; strFile = strProjectID + "_" + DateTime.Now.Ticks.ToString() + ".xlsx"; //Saving file with new name oWB.SaveAs(strCurrentDir + strFile, XlFileFormat.xlWorkbookDefault, null, null, false, false, XlSaveAsAccessMode.xlExclusive, false, false, null, null); oWB.Close(false, strCurrentDir + strFile, Type.Missing); wbks.Close(); oXL.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL); System.Runtime.InteropServices.Marshal.ReleaseComObject(wbks); System.Runtime.InteropServices.Marshal.ReleaseComObject(oWB); oWB = null; oXL = null; wbks = null; GC.Collect(); return strFile; } ``` As you can see I am closing and releasing all the objects but the application does not quit. I'm testing in a Windows Server 2008(production) and Windows 7(development) both in 32bits with IIS7.