2013-08-21 3 views
0

В когда-то сегодня, эта ошибка произошла и сценарий повешен:Не удалось создать COM-объект `WScript.shell ': CoInitialize не был вызван

[21-Aug-2013 08:35:06] PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `WScript.shell': CoInitialize has not been called. 
' in C:\path\to\my\script.php:357 
Stack trace: 
#0 C:\path\to\my\script.php(357): com->com('WScript.shell') 
#1 {main} 
    thrown in C:\path\to\my\script.php on line 357 

Это линия (работает в цикле) вызвав ошибку:

$com = new Com('WScript.shell'); 

Эта линия обычно работает нормально, поэтому я не пропускаю никаких библиотек. Почему это могло произойти?

ответ

2

Перейдите на страницу php.ini и добавьте эту строку. После этого перезапустите php-сервер. Удачи вам

extension=php_com_dotnet.dll 
+1

Спасибо, но это уже сделано. Странно, что эта ошибка возникает в случайное время. Я имею в виду, что сценарий работает нормально в течение нескольких часов \ дней, и внезапно эта ошибка начинает появляться всякий раз, когда выполняется эта строка. –

1

Это, скорее всего, связано с ошибкой размещения кучи рабочего стола. Один из способов проверить - перейти в журнал событий Windows (системная категория) и выполнить поиск ошибки «Предупреждение об использовании рабочего стола» или предупреждение. В качестве обходного пути вы можете использовать shell_exec.

Для получения более подробной информации о рабочем столе залечить ошибку выделения см KB 184802

0

Эффективно включать библиотеку «расширение = php_com_dotnet.dll» в php.ini может служить при выполнении $ команды = новый Com («WScript.Shell») ; в моем случае он работал с сервером Apache/2.2.29 (Win64) PHP/3.5.29 mod_ssl/2.2.29

спасибо большое.

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