Мы используем COM-объекты для доступа к таблицам Excel в службе NT (через Windows Scripting Host). До Vista это прекрасно работало, но, начиная с Vista, мы получаем такую ошибку:
Microsoft Office Excel не может получить доступ к файлу c: \ myfiles \ test.xls. Есть несколько возможных причин:
- Имя файла или путь не существует.
- Файл используется другой программой.
- Книга, которую вы пытаетесь сохранить, имеет то же имя, что и открытая в данный момент книга.
Я попытался изменить настройки входа в службу NT, чтобы использовать свою учетную запись, учетную запись администратора и локальную систему. Я просмотрел локальную политику безопасности и ничего не нашел. Я потратил дни на поиск в базе знаний Майкрософт, но безрезультатно.
Если сценарий выполняется из консольного приложения, он работает нормально. Файл открывается и обрабатывается без проблем. Ошибка возникает только при выполнении из контекста службы.
Если служба работает в Windows XP или Server 2003 SP1, она также работает нормально. Только в Vista он терпит неудачу (и теперь мы получили сообщения об этом в Server 2003 SP2)!
Код, какой он стоит, исключительно прост:
dim xl_app
Set xl_app = CreateObject("Excel.Application")
xl_app.Workbooks.Open mypath,0,1
Я подозреваю, что у этого человека может быть та же проблема: http://bytes.com/forum/thread819740.html