Компонентная объектная модель PHP "Доступ запрещен" - PullRequest
10 голосов
/ 05 марта 2012

Моя среда разработки - PHP 5.3, IIS 7.5 и Window7 Home. Я разрабатываю прототип приложения, для которого требуется PHP-функция imagewindowgrab (). Эта функция требует вызова объектной модели компонентов (COM) Windows.

Моя единственная строка кода была такой:


$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

После часового поиска, просматривая форумы .NET и находя хорошие ресурсы:

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

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

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

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

1 Ответ

2 голосов
/ 06 марта 2014

Этот вопрос кажется без ответа, но ответ сам объяснил в вопросе.Я просто кладу сюда: -

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

$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. Щелкните правой кнопкой мыши на Root консоли> Служба компонентов> Компьютеры> Мой компьютер иВыберите «Свойства»
  3. . На вкладке «Безопасность COM»> «Права доступа» нажмите «Изменить по умолчанию», добавьте пользователя (например, IIS_IUSRS) или службу
  4. Установите флажок «Разрешить локальный доступ»

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...