PHP组件对象模型“访问被拒绝”

时间:2012-03-05 04:04:36

标签: php iis com

我的开发环境是PHP 5.3,IIS 7.5和Window7 Home。我正在开发一个原型应用程序,它需要PHP函数imagewindowgrab()。此函数需要调用Windows组件对象模型(COM)。

我的一行代码是:


$browser = new COM("InternetExplorer.Application") or die("Unable to instantiate IE");

它产生了以下错误:


Fatal error: Uncaught exception 'com_exception' with message 
'Failed to create COM object `InternetExplorer.Application': Access is denied. ' 
in C:\inetpub\wwwroot\trial.php:8 Stack trace: #0 C:\inetpub\wwwroot\trial.php(8): com->com('InternetExplore...') #1 {main} thrown 
in C:\inetpub\wwwroot\trial.php on line 8

搜索了几个小时后,浏览.NET论坛,找到了很好的资源:

最终对我有用的是遵循这个问题答案中概述的指示:
Accessing Office Word object model through asp.net results in "failed due to the following error: 80070005 Access is denied."

并按照以下说明跟进这些​​说明:

  1. 在命令行中输入DCOMCNFG
  2. 点击右侧的控制台 Root>组件服务>电脑>我的电脑并选择属性
  3. 在选项卡上 COM安全>访问权限单击编辑默认并添加用户(例如 IIS_IUSRS )或服务
  4. 选中允许本地访问
  5. 这似乎解决了PHP对COM框架的访问权限问题。

1 个答案:

答案 0 :(得分:2)

这个问题似乎没有答案,但答案有自我解释。 我只是放在这里: -

尝试过的代码: -

$browser = new COM("InternetExplorer.Application") or die("Unable to instantiate IE");

生成错误: -

Fatal error: Uncaught exception 'com_exception' with message 
'Failed to create COM object `InternetExplorer.Application': Access is denied. ' 
in C:\inetpub\wwwroot\trial.php:8 Stack trace: #0 C:\inetpub\wwwroot\trial.php(8): com->com('InternetExplore...') #1 {main} thrown 
in C:\inetpub\wwwroot\trial.php on line 8

有助于解决的步骤和资源: -

良好的资源: -

http://forums.asp.net/t/1680634.aspx/1

http://learn.iis.net/page.aspx/624/application-pool-identities/

实际有助于解决的资源: -

Accessing Office Word object model through asp.net results in "failed due to the following error: 80070005 Access is denied."

步骤: -

  1. 在命令行中放入DCOMCNFG
  2. 在控制台根目录上单击右键>组件服务>电脑>我的电脑,并选择属性
  3. 在标签COM安全>中;访问权限单击编辑默认值 添加用户(例如IIS_IUSRS)或服务
  4. 选中允许本地访问
  5. 注意:从PHP处理COM框架的访问权限问题。