13
votes

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:

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.

1
Welcome to SO! You should put your solution as an answer and then accept it to make it more clear.drew010

1 Answers

5
votes

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.