PHP-компонентная модель объекта «Доступ запрещен»

Моя среда разработки – 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
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://learn.iis.net/page.aspx/624/application-pool-identities/

Что, наконец, помогло мне, было следовать инструкциям, изложенным в ответе на этот вопрос:
Доступ к объектной модели Office Word с помощью asp.net приводит к «неудачному из-за следующей ошибки: 80070005 Доступ запрещен».

И следуя этим инструкциям со следующим:

  1. В командной строке введите DCOMCNFG
  2. Нажмите прямо на корне консоли > Служба компонентов> Компьютеры> Мой компьютер и выберите Свойства
  3. На вкладке « Безопасность COM»> «Разрешения доступа» нажмите « Изменить по умолчанию» и добавьте пользователя (например, IIS_IUSRS ) или услугу
  4. Проверить возможность локального доступа

По-видимому, это позаботилось о проблемах с разрешением доступа в среде COM с PHP.

Этот вопрос остается без ответа, но ответ сам объясняет. Я просто помещаю здесь: –

Пробный код: –

 $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://learn.iis.net/page.aspx/624/application-pool-identities/

Ресурсы, которые на самом деле помогают решить: –

Доступ к объектной модели Office Word с помощью asp.net приводит к «неудачному из-за следующей ошибки: 80070005 Доступ запрещен».

Шаги: –

  1. В командной строке DCOMCNFG
  2. Нажмите «Право на корне консоли»> «Служба компонентов»> «Компьютеры»> «Мой компьютер» и «Выбрать свойства».
  3. В вкладке «Защита COM»> «Разрешения доступа» Нажмите «Изменить» по умолчанию. Добавить пользователя (например, IIS_IUSRS) или услугу
  4. Проверить разрешить локальный доступ

Примечание. Позаботьтесь о проблемах с разрешением доступа в среде COM с PHP.