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

use*_*821 11 php com iis

我的开发环境是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论坛,找到了很好的资源:

最终对我有用的是遵循这个SO问题的答案中概述的说明:
通过asp.net访问Office Word对象模型导致"由于以下错误而失败:80070005访问被拒绝".

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

  1. 在命令行输入 DCOMCNFG
  2. 在控制台根>组件服务>计算机>我的电脑上单击右键,然后选择属性
  3. 在选项卡COM安全性>访问权限上单击编辑默认并添加用户(例如IIS_IUSRS)或服务
  4. 检查允许本地访问

这似乎照顾了PHP的COM框架的访问权限问题.

Raj*_*jan 5

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

试过的代码:-

$browser = new COM("InternetExplorer.Application") or die("Unable to instantiate IE");
Run Code Online (Sandbox Code Playgroud)

产生的错误:-

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
Run Code Online (Sandbox Code Playgroud)

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

好资源:-

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

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

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

通过 asp.net 访问 Office Word 对象模型会导致“由于以下错误而失败:80070005 访问被拒绝”。

脚步 :-

  1. 打开命令提示符窗口并键入DCOMCNFG以打开组件服务界面。
  2. 展开Console Root > Component Service > Computers并右键单击 My Computer,然后选择Properties
  3. 在选项卡COM 安全>访问权限 单击编辑默认 添加用户(例如 IIS_IUSRS)或服务
  4. 检查允许本地访问

注意:注意 PHP 中 COM 框架的访问权限问题。