Microsoft Excel не может получить доступ к файлу, есть несколько возможных причин + Workbooks.Open +

В моем приложении С#.net я создаю файл excel, и он отлично работает в моей локальной системе, но выдает ошибку ниже при развертывании приложения в IIS.

  • На моем веб-сервере не установлен офис.

Ошибка:

ExceptionMessage> Microsoft Excel не может получить доступ к файлу '\............xltm'. Возможных причин несколько: • Имя файла или путь не существуют. • Файл используется другой программой. • Книга, которую вы пытаетесь сохранить, имеет то же имя, что и открытая в данный момент книга. System.Runtime.InteropServices.COMException


person umesh.chape    schedule 26.02.2020    source источник
comment
вы упоминаете workbooks.open в заголовке, как это связано здесь?   -  person Marcucciboy2    schedule 26.02.2020
comment
Это строка: WB = xApp.Workbooks.Open(oTemplate.ToString(), отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует, отсутствует);   -  person umesh.chape    schedule 26.02.2020
comment
НЕ используйте взаимодействие Office на веб-сервере. Для начала вам потребуется купить отдельную лицензию для каждого пользователя. Во-вторых, если вы будете неосторожны, вы в конечном итоге откроете новый экземпляр Excel для каждого запроса, быстро исчерпав всю оперативную память. Даже если вы будете осторожны, вы создаете новый экземпляр для каждого параллельного запроса, который тратит впустую много оперативной памяти. И вам все равно придется платить за все из них   -  person Panagiotis Kanavos    schedule 26.02.2020
comment
Веб-приложения используют такие библиотеки, как Epplus, для создания реальных xlsx файлов без использования Excel. xlsx — это zip-пакет, содержащий XML-файлы в четко определенном формате, что означает, что вы можете просто создавать файлы на лету. Однако Epplus делает это намного проще, например, sheet.Cells.LoadFromCollection()   -  person Panagiotis Kanavos    schedule 26.02.2020