在将我的网站部署到IIS后,Excel不会退出

我在我的网站项目中使用C#中的Excel互操作来parsingExcel文件并将其转换为文本文件。 示例代码如下。 它在debugging模式下运行良好。 但在任务pipe理器中,我经常看到两个Excel正在运行,为什么? 另外,将网站部署到IIS后,excel.exe将不会退出。 我的项目是VS 2010(Ultimate)中的一个网站项目。 我的机器是Windows Server 2008,这意味着我应该有IIS 7.但是当我运行inetmgr时,它显示IIS版本6(谷歌search后,我确认我的IIS应该仍然是7,pipe理工具是6)。

所以我的问题是为什么Excel部署到IIS后不退出?

Excel.Application excel=new Excel.Application(); Excel.Workbooks wbs=excel.Workbooks; Excel.Workbook wb=wbs.Open(…); Try { … Foreach(Excel.Worksheet sheet in wb.Sheets) { … Marshal.RealseComObject(sheet); } … } Catch() { } Finally { wb.Close(false, missing, missing); while (Marshal.ReleaseComObject(wb)!=0) { } wb=null; while (Marshal.ReleaseComObject(wbs)!=0) { } wbs=null; excel.Quit(); while (Marshal.ReleaseComObject(excel)!=0) { } excel=null; GC.Collect(); GC.WaitForPendingFinalizers(); } 

更新:原来,这是因为wbs.Open(…)抛出一个exception。

我发现从下面的链接解决scheme,它解决了我的问题。 无法在C#中打开Excel文件