我的开发环境是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 论坛并找到了好的资源:
- http://forums.asp.net/t/1680634.aspx/1 http://forums.asp.net/t/1680634.aspx/1
- http://learn.iis.net/page.aspx/624/application-pool-identities/ http://learn.iis.net/page.aspx/624/application-pool-identities/
最终对我有用的是遵循这个问题的答案中概述的说明:
通过 asp.net 访问 Office Word 对象模型会导致“由于以下错误而失败:80070005 访问被拒绝”。 https://stackoverflow.com/questions/3477086/accessing-office-word-object-model-through-asp-net-results-in-failed-due-to-the
并按照这些说明执行以下操作:
- 在命令行输入
DCOMCNFG
- 单击控制台右键根 > 组件服务 > 计算机 > 我的电脑并选择特性
- 在选项卡上COM 安全 > 访问权限点击编辑默认值并添加用户(例如IIS_IUSRS)或服务
- 勾选允许本地访问
这似乎已经解决了我使用 PHP 的 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
有助于解决问题的步骤和资源:-
好资源:-
http://forums.asp.net/t/1680634.aspx/1 http://forums.asp.net/t/1680634.aspx/1
http://learn.iis.net/page.aspx/624/application-pool-identities/ http://learn.iis.net/page.aspx/624/application-pool-identities/
真正有助于解决问题的资源:-
通过 asp.net 访问 Office Word 对象模型会导致“由于以下错误而失败:80070005 访问被拒绝”。 https://stackoverflow.com/questions/3477086/accessing-office-word-object-model-through-asp-net-results-in-failed-due-to-the
Steps :-
- 打开命令提示符窗口并键入
DCOMCNFG
打开组件服务界面。
- Expand 控制台根目录 > 组件服务 > 电脑并右键单击我的电脑,并选择特性
- 在选项卡中通讯安全 > 访问权限点击编辑默认值添加用户(例如 IIS_IUSRS)或服务
- Check Allow for 本地访问
注意:注意 PHP 中 COM 框架的访问权限问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)