Моя среда разработки - 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 Доступ запрещен».
И следуйте этим инструкциям следующим образом:
- В командной строке введите
DCOMCNFG
- Щелкните правой кнопкой мыши на консоли Root> Служба компонентов> Компьютеры> Мой компьютер и выберите Свойства
- На вкладке Безопасность COM> Права доступа нажмите Изменить значение по умолчанию и добавьте пользователя (например, IIS_IUSRS ) или службу
- Проверка разрешения локального доступа
Похоже, это позаботилось о моих проблемах с правами доступа в среде COM из PHP.