Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Unable to open document Win32::OLE


Автор: Itsys 17.7.2009, 19:41
Добрый день,

Собственно проблема описана в теме.

Код

use Win32::OLE;
use Win32::OLE::Const 'Microsoft Word';
my $Word = Win32::OLE->new('Word.Application', 'Quit') || die("Unable to open document ", Win32::OLE->LastError());

(код не весь) - до того места, где возникает ошибка
При разработке на локальном компьютере все работает как надо, при переносе на сервер начинает выдавать ошибку:
Код

Unable to open document Win32::OLE(0.1709) error 0x80070005: "Отказано в " at D:\***\sber.cgi line 29.


Сначала подумал, что это из-за того, что под пользователем, под которым запускается сайт не инициализирован Word, зашел, запустил Word, ввел инициалы, но ошибка осталась.

Добавлено @ 19:46
Посмотрел, сам процесс IIS запускается под системной учетной записью, конкертный сайт по учеткой пользователя, для этого пользователя и был инициализирован Word. Може OLE всетаки пытается запустить его под системной учеткой...

Автор: Itsys 18.7.2009, 07:37
Решение данной проблемы найдено:
http://support.microsoft.com/kb/892500

но, дойдя до следующей строки
Код

my $template=$Word->Documents->Open("D:\\***\\Receipt.doc") || die("Unable to open document ", Win32::OLE->LastError());


Код

Unable to open document OLE exception from "Microsoft Word":

Ошибка команды

Win32::OLE(0.1709) error 0x800a1066
    in METHOD/PROPERTYGET "Open" at D:\***\sber.cgi line 33.


Автор: shamber 18.7.2009, 14:16
Itsys, пробуйте указывать полный путь.

Автор: Itsys 18.7.2009, 15:12
shamber, на самом деле, путь указан полностью, просто я сократил код, убрав лишние подробности.

И повторюсь еще раз, при локальном запуске все работает, а при запуске через CGI (сервер IIS) - выдает такую фигню.

ЗЫ может быть это связано с тем, что perl запускается как ISAPI?

Добавлено через 2 минуты и 41 секунду
Поправил предыдущие сообщения, чтобы было видно, что пути абсолютные.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)