Приложение Excel растет в памяти - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть приложение ASP.net на IIS. В этом приложении я создал приложение Excel:

using Excel = Microsoft.Office.Interop.Excel;
public Excel.Application ExlApp;
//
public Excel.Workbook ExlWb;
//
public Excel.Worksheet ExlWs;

Во время работы приложения я создал новые рабочие книги и, наконец, уничтожил свои объекты:

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

        Marshal.ReleaseComObject(ExlWs);        

        ExlWb.Close(Type.Missing, Type.Missing, Type.Missing);
        Marshal.ReleaseComObject(ExlWb);

Проблема: во время работы процесс EXCEL растет в памяти, как мне правильно закрыть рабочие книги?

1 Ответ

5 голосов
/ 06 февраля 2012

Возможно, вам стоит взглянуть на замену автоматизации Excel на обработку OpenXML.Автоматизация офисных приложений на стороне сервера является неподдерживаемым сценарием:

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

"В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office с помощью любого неинтерактивного неуправляемого клиентаприложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или тупиковую ситуацию при запуске Office в этой среде. "

...