Я не уверен, что это именно тот ответ, но я много работал с ASP.NET и Excel Interop и могу предложить вам некоторые из моих наблюдений / указателей.
Если вы используете диспетчер задач, вы можетепосмотрите, какой пользователь все еще запускает процесс EXCEL.EXE - скорее всего, это удостоверение AppPool.
Из опыта, когда пул приложений перезагружается, это закроет Excel.
Также вы можете заметить, что если вы запуститеваш скрипт снова второй Excel открывается и закрывается!
Для справки, вот мой код Закрыть Excel:
xl.Quit();
Marshal.ReleaseComObject(xl);
xl = null;
GC.Collect();