Я создал # обслуживание C, что:службы Windows пробежала учетную запись домена не может получить доступ к файлу в то время как полный контроль
- Picks up and opens a local text file
- Opens an Excel-file used as template (saved locally)
- Fills in the data from the text file in the excel file
- Saves the Excel file to a network folder.
Служба выполняется с использованием учетной записи домена (я не могу дать права локальной системы учетной записи на сеть из наш администратор сети ...). Когда служба пытается открыть шаблон, я получаю сообщение об ошибке Отказано доступа:
Microsoft Excel cannot access the file 'C:\BloxVacation\Template\BloxTemplate.xlsm'. There are several possible reasons:
• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.
файл существует и правильный путь. Файл не используется другим пользователем или программой. Я пытаюсь открыть книгу (никакая другая книга не открыта), а не SAVE.
Я получил ту же ошибку, используя системную учетную запись. Причина этого в том, что при использовании interopservices системной учетной записи требуется папка рабочего стола (ошибка в Windows 7: http://forums.asp.net/t/1585488.aspx).
C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop
Создайте эти 2 файла, и ошибка исчезнет для системной учетной записи.
Я предоставил права домена для этих папок, и ошибка также исчезла, однако служба зависает в строке кода, где я открываю файл excel. Когда я выполняю тот же самый код с системной учетной записью, код выполняется хорошо (Примечание: я сохраняю файл локально).
objXL.Workbooks.Open(BloxVacationService.ExcelTemplateFilePath)
Кто-нибудь знает, как решить эту проблему, не переписывая всю услугу в OpenXML? Заранее большое спасибо.