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:
- On the command line enter
DCOMCNFG
- Click right on Console Root > Component Service > Computers > My Computer and select Properties
- On the tab COM Security > Access Permissions click on Edit Default and add the user (e.g. IIS_IUSRS) or service
- Check allow local access
This appears to have taken care of my Access Permission problems with the COM framework from PHP.