WAMP上的PHP随机COM对象问题

WAMP上的PHP随机COM对象问题,php,com,apache2,Php,Com,Apache2,我正在PHP应用程序中使用旧的COM对象/ActiveX控件。它在Windows/Apache下运行。通常情况下一切都很好,但有时我会 创建COM对象“TTF161.TTF1”失败:对象服务器包含一个文件,该文件包含一个文件 消息的德语部分表示类似Objectserver的内容在OLE服务调用它时终止 我尝试用try-catch封装对象的创建,但它不起作用 问题随机出现在同一个请求中。所以它和任何编程逻辑都无关,我假设这个旧组件只是有点问题,有时会出现故障。但是我想处理这种情况,比如再试一次或者

我正在PHP应用程序中使用旧的COM对象/ActiveX控件。它在Windows/Apache下运行。通常情况下一切都很好,但有时我会

创建COM对象“TTF161.TTF1”失败:对象服务器包含一个文件,该文件包含一个文件

消息的德语部分表示类似Objectserver的内容在OLE服务调用它时终止

我尝试用try-catch封装对象的创建,但它不起作用

问题随机出现在同一个请求中。所以它和任何编程逻辑都无关,我假设这个旧组件只是有点问题,有时会出现故障。但是我想处理这种情况,比如再试一次或者给用户一个更好的错误消息。我还可以想象它与apache线程或进程的数量有关。事件日志不显示任何内容,并且Apache错误日志为空


如果您能告诉我如何处理/发现问题,或者在哪里可以找到更多信息,我将不胜感激。

以下代码适合我(Win XP SP3,PHP5.2.17(cli)(构建时间:2011年1月6日17:37:45)):

在对象创建过程中模拟错误

我最好的猜测是(我可能完全错了),在您的例子中,错误不是由对象创建引发的,而是由PHP中某个不同的COM调用引发的,而该调用没有正确处理


您可能会考虑为这个行为提交一个bug报告,因为通常您应该能够捕捉到错误。

您正在运行哪个PHP版本?英文翻译:“OLE服务与OLE服务接触时,对象服务器正在停止”,请参阅@ JPW:如果仍然感兴趣,这发生在PHP5.2上。根据这个站点,您应该能够捕获错误。您使用什么代码来创建对象/捕获错误?@JPW我得到了
set\u exception\u handler()
,这是一个关于COM创建的尝试捕获(
new COM(…)
)。我们目前正在测试一个32位、PHP5.4、Apache2.4的新VM,我还在等待页面加载时的结果。
<?php
  try
  {
    echo "Trying to create object"."\r\n";
    $obj = new COM("FailingObject");
    echo "Object created";
  }
  catch(com_exception $e)
  {
    echo "Caught exception"."\r\n";
    $c = $e->getCode();
    $m = $e->getMessage();
    echo "Error Code: ".dechex($c)."\r\n";
    echo $m;
  }
?>
HRESULT FinalConstruct()
{
    return CO_E_SERVER_STOPPING;
}