2013-09-25 3 views
3

Я создал # обслуживание 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? Заранее большое спасибо.

ответ

0

Если вы сделали все, что описанные в этом вопросе, и он по-прежнему не работает (как это было со мной), ответ довольно прост:

Сделать запись пользователя домена локального администратора на машина, которая запускает службу. Он решил проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^