Re: Так как же все-таки выгрузить Excel?
От: Gollum Россия  
Дата: 03.11.03 10:50
Оценка: 11 (1)
Здравствуйте, Kostyа, Вы писали:

K>ASP.NET приложение,делаем элементарную операцию

K>и т.д. не помогают. Может кто подскажет как бороться?

Эта проблема уже очень давно и интенсивно обсуждалась на различных асп.нет форумах. Решение вкратце — киллять процесс.
Microsoft очень не рекомендует использовать Server-Side Office Automation.

Можно использовать .csv в качестве альтернативы, использовать ODBC.
На крайний случай — попробовать работать с одним экземпляром экселя.
Ежели череп прогрызла мышь — время забыть о былом
Eugene Agafonov on the .NET

Так как же все-таки выгрузить Excel?
От: Kostyа  
Дата: 03.11.03 10:38
Оценка:
ASP.NET приложение,делаем элементарную операцию

   Excel.Application  app = new Excel.ApplicationClass();
   app.Quit();

после нее Excel висит в памяти.
Варианты типа
app.DisplayAlerts = false;
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
GC.Collect();

и т.д. не помогают. Может кто подскажет как бороться?
Re[2]: Так как же все-таки выгрузить Excel?
От: Kostyа  
Дата: 03.11.03 10:53
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, Kostyа, Вы писали:


K>>ASP.NET приложение,делаем элементарную операцию

K>>и т.д. не помогают. Может кто подскажет как бороться?

G>Эта проблема уже очень давно и интенсивно обсуждалась на различных асп.нет форумах. Решение вкратце — киллять процесс.

G>Microsoft очень не рекомендует использовать Server-Side Office Automation.

G>Можно использовать .csv в качестве альтернативы, использовать ODBC.

G>На крайний случай — попробовать работать с одним экземпляром экселя.

Видать, по другому не получится. А как убить конкретный экземпляр Excel'я?
Re[3]: Так как же все-таки выгрузить Excel?
От: Gollum Россия  
Дата: 03.11.03 11:17
Оценка:
Здравствуйте, Kostyа, Вы писали:

K>Видать, по другому не получится. А как убить конкретный экземпляр Excel'я?


Видимо, здесь нужно действовать через WinAPI. Впрочем, вот я тут нашел информацию:

Excel.Application  app = new Excel.ApplicationClass();
app.DisplayAlerts = false;
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
GC.Collect();
GC.WaitForPendingFinalizers();


Говорят, выделенная строчка помогает Сам не пробовал, был бы рад узнать, помогло или нет.
Любая весть изначально благая, просто ты к этому еще не привык
Eugene Agafonov on the .NET

Re[4]: Так как же все-таки выгрузить Excel?
От: Kostyа  
Дата: 03.11.03 12:01
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, Kostyа, Вы писали:


K>>Видать, по другому не получится. А как убить конкретный экземпляр Excel'я?


G>Видимо, здесь нужно действовать через WinAPI. Впрочем, вот я тут нашел информацию:


G>
G>Excel.Application  app = new Excel.ApplicationClass();
G>app.DisplayAlerts = false;
G>app.Quit();
G>System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
G>app = null;
G>GC.Collect();
G>GC.WaitForPendingFinalizers();
G>


G>Говорят, выделенная строчка помогает Сам не пробовал, был бы рад узнать, помогло или нет.



Уже пробовал. Голый Excel выгружается, а если открывал Workbook — нет, хотя все возвращаемые ссылки
чистил тем же Marshal'oм
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.