Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Component Object Model "Access is denied"

Tags:

php

iis

com

My development environment is PHP 5.3, IIS 7.5, and Window7 Home. I am developing a prototype application, which requires the PHP function imagewindowgrab(). This function requires calling the Windows Component Object Model (COM).

My single line of code was this:


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

It produced the following error:


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

After searching for hours, trolling through .NET forums, and finding good resources:

  • http://forums.asp.net/t/1680634.aspx/1
  • http://learn.iis.net/page.aspx/624/application-pool-identities/

What finally worked for me was following the instructions outlined in the answer to this SO question:
Accessing Office Word object model through asp.net results in "failed due to the following error: 80070005 Access is denied."

AND following up those instructions with the following:

  1. On the command line enter DCOMCNFG
  2. Click right on Console Root > Component Service > Computers > My Computer and select Properties
  3. On the tab COM Security > Access Permissions click on Edit Default and add the user (e.g. IIS_IUSRS) or service
  4. Check allow local access

This appears to have taken care of my Access Permission problems with the COM framework from PHP.

like image 666
user1248821 Avatar asked Mar 05 '12 04:03

user1248821


1 Answers

This question appears unanswered but answer have self explained in question . I am just putting here :-

Tried Code :-

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

Error Generated :-

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

Steps and resources that helped to solved :-

Good Resources:-

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

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

Resources that actually help to solve :-

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

Steps :-

  1. Open a command prompt window and type DCOMCNFG to open the Component Services interface.
  2. Expand Console Root > Component Service > Computers and right-click on My Computer, And Select Properties
  3. In the Tab COM Security > Access Permissions Click on Edit Default Add the User (Ex. IIS_IUSRS) or service
  4. Check Allow for Local Access

Note : Take care of Access Permission problems with the COM framework from PHP.

like image 126
Rajeev Ranjan Avatar answered Oct 20 '22 00:10

Rajeev Ranjan