У меня есть веб-сайт, размещенный в IIS. Мое приложение относится к написанию и чтению данных в/из документа Excel.Компоненты Clean Com при размещении сайта asp.net в IIS
Когда я запускаю приложение из VS, я все время вижу только один EXCEL.exe Но когда я размещаю одно и то же приложение в IIS, для каждого написания его создания одного объекта excel и отображения в Task-manager, Поэтому иногда мой сайт перестает отвечать.
Ниже мой код
try
{
xlApp = new app.Application();
xlWorkBooks = xlApp.Workbooks;
xlWorkBook = xlWorkBooks.Open(FilePath, missing, false, missing, missing, missing, true, missing, missing, true, missing, missing, missing, missing, missing);
xlWorkSheet = xlWorkBook.Worksheets.get_Item(index);
//code …………………………….
xlApp.DisplayAlerts = false;
xlWorkBook.Save();
boolWriteSuccess = true;
xlApp.DisplayAlerts = true;
}
Catch()
{
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(xlWorkSheet);
Marshal.FinalReleaseComObject(xlWorkSheets);
xlWorkBook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(xlWorkBook);
xlWorkBooks.Close();
Marshal.FinalReleaseComObject(xlWorkBooks);
if (xlApp != null)
xlApp.Quit();
Marshal.FinalReleaseComObject(xlApp);
}
Вот снимок экрана диспетчера задач, когда веб-сайт размещен в IIS
Я хочу, чтобы очистить Excel.exe от диспетчера задач всегда, но некоторые, как я Невозможно очистить. Пожалуйста, помогите мне в этом.
Это ужасная идея использовать Office, Interop из ASP.NET или другой серверной технологии. Эти API были написаны для использования в настольном приложении для автоматизации Office (набор настольных приложений). Серверные приложения во многом отличаются друг от друга, что делает очень и очень плохой вариант использования Office Interop. Он также не поддерживается Microsoft и может нарушить вашу лицензию Office. См. [Соображения для автоматизации на стороне сервера Office] (http://support.microsoft.com/kb/257757) –
Да, я перешел на открытие XML, спасибо за предложение ur. – Ram