0

在今天的某个时候,发生了这个错误并且脚本被挂起:

[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');

这条线通常运行良好,所以我不会错过任何库。为什么会发生这种情况?

4

3 回答 3

2

转到 php.ini 并添加这一行。之后,重新启动 php 服务器。祝你好运

extension=php_com_dotnet.dll 
于 2013-11-18T10:09:39.880 回答
1

这很可能是由于桌面堆分配错误。一种验证方法是转到 Windows 事件日志(系统类别)并搜索“桌面堆分配失败”错误或警告。作为一种解决方法,您可以考虑使用shell_exec

有关桌面堆分配错误的更多详细信息,请参阅KB 184802

于 2013-12-12T03:07:37.943 回答
0

在 php.ini 中有效地包含库“extension = php_com_dotnet.dll”可以在执行时提供服务 $ command = new Com ('WScript.Shell'); 就我而言,它与 Apache / 2.2.29 服务器 (Win64) PHP / 3.5.29 mod_ssl / 2.2.29 一起使用

多谢。

于 2015-01-13T23:26:11.120 回答