MS WORD Не удается открыть банк макросов...

Elef

Новичок
MS WORD Не удается открыть банк макросов...

При запуске тестового скрипта:
<?php
// starting word
$word = new COM("word.application") or die("Unable to instanciate Word");
print "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

...
?>
Результат выглядит следующим образом:

Loaded Word, version 9.0
Warning: Invoke() failed: Ошибка. Source: Microsoft Word Description: Не удается открыть банк макросов. in c:\inetpub\wwwroot\11.php on line 10

У меня PHP 4.2.2. + ISS + Windows
PHP как ISAPI.

Подскажите пожалуйста: в чем дело?:confused:
 

Elef

Новичок
ё-моё..... процесс в диспетчере задач отопрожается, а с файлом ни чего не происходит....
 

AiST

Guest
такое сообщение появлялось у меня при ручном запуске ворда под вин2к. Лечилось (грубовато конечно), насколько я помню, добавлением пользователя, из-под которого запускался ворд, в группу "опытные пользователи".
 

Elef

Новичок
все, вроде получилось.... действительно проблемма с правами была и с ещё надо было в IIS отключить анонимный доступ (м-да...)

Огромно всем спасибо !!!!
 

envoker

Guest
У меня та же самая проблема, но не лечится описанными здесь способами. Я шел так:
Корень консоли -> Службы компонентов -> Компьютеры -> Мой компьютер -> Настройка DCOM -> Документ Word
НО.... там ниже есть такие элементы как "Приложение Microsoft Exel" так же есть Access и Graph а Word'a нету. Поэтому пытался настроить как-то через "Документ Word" -- не получилось. Я дал всем пользователям всех групп права на запуск и доступ -- все равно не работает. Если PHP скрипт запускать не через IIS, то все работает, но на сервере на котором это будет выложенно стоит IIS поэтому надо разобраться. Помогите пожалста
 

Линк

Guest

chulim

Новичок
Автор оригинала: envoker
Если PHP скрипт запускать не через IIS, то все работает, но на сервере на котором это будет выложенно стоит IIS поэтому надо разобраться. Помогите пожалста
У человека проблема явно с IIS, по моему.
 

Линк

Guest
ой
кривой-слепой я

ИЗВИНИТЕ

ну тогда конечно пермишены
наверное на файл шаблона
 

envoker

Guest
Премишны на что, простите?
Описываю свои действия:
запуск консоли, потом:
Корень консоли->Службы компонентов->Компьютеры->Мой компьютер
а далее вижу такое:
Приложения COM+
Настройка DCOM
Координатор распределения транзакций
Работающие процессы
--
То, что я пробовал в DCOM'e я описал, если захожу в "Приложения COM+" там еще дофига подпунктов, облазил все что видел, но нигде не нашел что-то типа word.application
подскажите хотя бы что искать?
В указанном выше по ссылке способе сказано "Запускаем DCOMCNFG.exe на сервере находим word application" так вот не находим такого...
 

Линк

Guest
Ткните меня носом:
ПРИЧЕМ ТУТ DCOM??


normal.dot файл знаете?
 

envoker

Guest
Знаю. Файл шаблона нового документа в Word. Можешь объяснить методу, каким образом ткнуть носом IIS в него?
 

Линк

Guest
IIS не нада тыкать
надо что пермишен на уровне NTFS давал права юзверю IIS на него
 

envoker

Guest
Ну вообще мистика. Значит в настройках IIS в разделе "Безопастность" дал процессу IIS права администратора (без матюгов. для теста дал). Ошибок нет, но и ничего не происходит. Если прошу вывести версию aka $word->Version -- выводит. А на вызов $word->Documents[1]->Save не реагирует. SaveAs("test.doc") тоже не приносит результата. Но дальше идет еще более странная вещь. Вернул ему права анонимные (IUSR_MKX) где MKX это имя моего компа. Такие права стояли до того как я поменял их на админские о чем писал выше. И вот что я получил взамен:
Warning: Invoke() failed: Ошибка. Source: Microsoft Word Description: Недостаточно памяти. Немедленно сохраните документ. in c:\inetpub\wwwroot\lmis_db\rep_teacher.php on line 22 -- строка вызова $word->Documents->Add();
теперь ему не хватает памяти. Помогите урезонить зверюгу
P.S. процесс WINWORD возникает в диспетчере задач
 

Elef

Новичок
может так:
dcomcnfg
настройка DCOM
В свойствах документов Word
в безопасности изменяешь разрешения на запуск
добавляешь домен администратор и домен юзвера.
 

envoker

Guest
Elef, попробовал. Никаких ошибок, процесс winword в диспетчере есть, но на экране нет.
P.S. $word->Visible=1; конечно же делаю, а $word->Quit() нет
 
Сверху