#php #com #windows-server-2008
#php #com #windows-server-2008
Вопрос:
Я пытаюсь взломать сервер, который превращает HTML в собственные документы Word. Это работает, но иногда я получаю следующую ошибку:
Uncaught exception 'com_exception' with message 'Failed to create COM object `word.application': CoInitialize has not been called.
Я использую PHP, а не ASP или что-то более похожее на Microsoft, потому что предполагается, что это просто быстрый проект.
Я инициализирую COM-объект следующим образом:
$word = new COM("word.application") or die("Unable to instantiate Word");
Кто-нибудь может сказать мне, как я могу вызвать CoInitialize() из PHP?
Большое спасибо
Ответ №1:
Убедитесь, что у вас нет поддельных копий WINWORD.EXE висит без дела. Я столкнулся с этой ошибкой, и когда я проверил, у меня было 36 копий WINWORD.EXE запущен. Очевидно, я пропустил некоторую логику при отключении от COM-объекта, поэтому каждый раз, когда я перезагружал скрипт, существующее WINWORD оставалось в подвешенном состоянии, пока запускалось новое. Как только я запустил все WINWORDs, ошибка исчезла.