У меня есть приложение ASP.NET для IIS. В этом приложении я использую Excel COM объект:Как я могу удалить объект Excel COM в IIS
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);
ExlApp.Quit();
Marshal.ReleaseComObject(ExlApp);
Таким образом, он работает нормально на Visual Studio 2008 НО! Когда я запускаю это приложение только в IIS, процесс Excel не может быть уничтожен! ПОМОЩЬ!
очень плохое решение ( – Oleg
Я согласен, что это не идеальный вариант, и, вероятно, это не окончательный ответ, но я никогда не смог бы заставить interop excel shutdown правильно вести себя. В то время я также использовал Office 2003, а инструменты проделали длинный путь с тех пор. – eppdog
«Использование автоматизации из Windows Service (например, IIS и ASP.NET) НЕ поддерживается MS», поэтому ... кажется, что убийство proceseas - единственный способ остановить EXCEL. – Oleg