Excel应用程序在内存中不断增长

Ole*_*leg 0 c# asp.net iis excel office-automation

我在IIS上有一个ASP.net应用程序.在这个应用程序中,我创建了一个Excel应用

using Excel = Microsoft.Office.Interop.Excel;
public Excel.Application ExlApp;
//
public Excel.Workbook ExlWb;
//
public Excel.Worksheet ExlWs;
Run Code Online (Sandbox Code Playgroud)

在应用程序工作期间,我创建了一个新的工作簿,最后,我销毁了我的对象:

        GC.Collect();
        GC.WaitForPendingFinalizers();

        Marshal.ReleaseComObject(ExlWs);        

        ExlWb.Close(Type.Missing, Type.Missing, Type.Missing);
        Marshal.ReleaseComObject(ExlWb);
Run Code Online (Sandbox Code Playgroud)

问题是:在工作期间,EXCEL进程在内存中成长,如何正确关闭工作簿?

小智 5

也许您应该考虑用OpenXML处理替换Excel自动化.自动化Office应用程序服务器端是不受支持的方案:

http://support.microsoft.com/kb/257757

"Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为, /或在此环境中运行Office时出现死锁."