Microsoft Office Excel не может получить доступ к файлу ‘c: \ inetpub \ wwwroot \ Timesheet \ App_Data \ Template.xlsx’

У меня есть код:

Microsoft.Office.Interop.Excel.Application oXL = null; Microsoft.Office.Interop.Excel.Sheets sheets; Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Workbooks.Add(System.Reflection.Missing.Value); /* * Here is the complete detail's about Workbook.Open() * * Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, * Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, * Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad) */ Workbook workbook = excel.Workbooks.Open( System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"), Missing.Value, true, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); sheets = workbook.Worksheets; 

Теперь для линии: –

 workbook = excel.Workbooks.Open( System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"), Missing.Value, true, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

Он запускается непосредственно из визуальной студии (F5), но когда я пытаюсь получить к нему доступ с помощью IIS, он не будет работать. Выдает ошибку следующим образом:

Microsoft Office Excel не может получить доступ к файлу «c: \ inetpub \ wwwroot \ Timesheet \ App_Data \ Template.xlsx». Существует несколько возможных причин:
• Имя файла или путь не существует.
• Файл используется другой программой.
• Книга, которую вы пытаетесь сохранить, имеет то же имя, что и текущая открытая книга.

Я пробовал работать как: –

  • Папка и файл существуют, предоставляя доступ к IUSR _ ### (пользователю IIS) и пользователю ASPNET в папке, где находится файл.
    • В службах компонентов (DCOM) предоставляется доступ к соответствующему пользователю.

Я уже дал все разрешения папке, в которой существует шаблон (.xlsx)

Какие-либо предложения??

    Попробуй это:

    1. Создать каталог

    C: \ Windows \ SysWOW64 \ Config \ systemprofile \ Desktop

    (для 32-разрядной версии Excel / Office на 64-разрядном компьютере под управлением Windows) или

    C: \ Windows \ System32 \ Config \ systemprofile \ Desktop

    (для 32-разрядной версии Office на 32-разрядном компьютере под управлением Windows или 64-разрядной версии Office на 64-разрядном компьютере под управлением Windows).

    1. В каталоге « Рабочий стол» добавьте разрешения полного доступа для соответствующего пользователя (например, в разрешениях Win7 и IIS 7 и DefaultAppPool для пользователя IIS AppPool \ DefaultAppPool ).

    Оригинальное сообщение с ответом:

    • Автоматизация Excel 2007 поверх Windows Server 2008 x64

    Позвольте мне заметить, что на моем месте добавление каталога c: \ windows \ syswow64 \ config \ systemprofile \ desktop не работало.

    Дело в том, что WOW64 означает Windows на Windows64, что означает, что он действительно применяется для 32-разрядных программ, работающих на 64-битной ОС.

    Поскольку у меня установлен 64-разрядный Excel, соответствующий каталог оказался c: \ windows \ system32 \ config \ systemprofile \ desktop

    Я хотел бы добавить что-то к ответу Эрика Бонно: ответ был отработан частично, поскольку я работал на сервере IIS с пользователем, не являющимся администратором, с PowerPoint PIA .

    Я заметил, что я не мог открыть файл pptx, если у него был носитель (например, фотография).

    «Хлопок» заключался в том, чтобы добавить также права на пользователя Windows (тот, который использует PIA) в каталогах systemprofile / AppData .

    Надеюсь это поможет

    Я ранее пытался эту проблему, а затем решил.

    Решение:

    Я поместил полное разрешение на определенную папку (подпапка и файлы) и проверил, что работает нормально.

    Я завернул мой WCF в службе Windows. Создание папок рабочего стола разрешило это для меня на одной машине, но не на другом.

    Моя проблема в конце концов заключалась в том, что моя служба Windows не запускалась под активным пользователем машины. Настройка службы для запуска под пользователем, который активен на машине, решил эту проблему для меня до сих пор.

    Только комбинация

    • Существующая папка рабочего стола
    • Служба работает под учетной записью реального пользователя

    заставил его работать на меня.

    Эта статья приводит меня к полному решению: не удается получить доступ к файлу excel

    Это работает

    excel.exe / safe

    Это не так и дает ту же ошибку, что и обычный запуск excel

    excel.exe / automation

    Это также происходит для всех приложений MS Office 2007 для ЛЮБОГО сетевого файла. Доступ к локальному файлу в порядке.

    Давайте будем гением компьютера.