2013-08-21 66 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.ini可以在執行命令$服務庫「擴展= p​​hp_com_dotnet.dll」 =新的COM(「WScript.Shell」) ; 在我的情況下它與Apache/2.2.29服務器(Win64)PHP/3.5.29 mod_ssl/2.2.29

非常感謝。