Moje środowisko programistyczne to PHP 5.3, IIS 7.5 i Window7 Home. Zajmuję się tworzeniem prototypowej aplikacji, która wymaga funkcji PHP imagewindowgrab(). Ta funkcja wymaga wywołania modelu obiektu składowego Windows (COM).Model obiektu składowego PHP "Odmowa dostępu"
Mój pojedynczy wiersz kodu było to:
$browser = new COM("InternetExplorer.Application") or die("Unable to instantiate IE");
Produkowany następujący błąd:
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
Po poszukiwaniu godzin trolling poprzez fora NET, a znalezienie dobrych zasobów:
- http://forums.asp.net/t/1680634.aspx/1
- http://learn.iis.net/page.aspx/624/application-pool-identities/
Co ostatecznie pracował dla mnie było, postępując zgodnie z instrukcjami podanymi w odpowiedzi na to SO pytanie:
Accessing Office Word object model through asp.net results in "failed due to the following error: 80070005 Access is denied."
i monitorowanie tych instrukcji z następujących czynności:
- Na w wierszu polecenia wpisz:
DCOMCNFG
- Kliknij prawym przyciskiem myszy na konsolę Katalog główny> Usługi składowe> Komputery> Moje obliczenia R i wybierz Właściwości
- Na karcie Zabezpieczenia COM> Uprawnienia dostępu kliknięcie Edytuj Domyślna i dodać użytkownika (np IIS_IUSRS) lub Service
- Sprawdź umożliwić dostęp lokalny
To wydaje się być pod opieką moich problemów Uprawnienia dostępu z ramami COM od PHP.
Witamy w SO! Powinieneś umieścić swoje rozwiązanie jako odpowiedź, a następnie zaakceptować je, aby było bardziej zrozumiałe. – drew010