Я пишу сервер, работающий в качестве службы Windows, который по запросу вызывает Firefox для создания снимка страницы в формате pdf.
Я знаю, что запускать программу с графическим интерфейсом в сервисном режиме - плохая идея, но серверная природа моей программы не позволяет запускать ее в пользовательском режиме. Запуск прокси на уровне пользователя также не вариант, поскольку на компьютере с запущенным сервером может не быть интерактивного пользователя, вошедшего в систему.
В моих экспериментах Firefox успешно создавал pdf, когда служба работала под учетной записью пользователя, которая уже вошла в систему. Очевидно, что это не сработало в других случаях: для локальной системы и учетных записей пользователей, которые не вошли в систему. В LocalSystem с включенной опцией «Разрешить службе взаимодействовать с рабочим столом» я мог видеть, что Firefox запустил, который сообщает, что не может найти принтер.
Поскольку было бы непрактично требовать открытого сеанса пользователя для запуска pdf-сервера, есть ли обходной путь для этого, кроме запуска всего этого с виртуальной машины?
ОБНОВЛЕНИЕ: Я понял, что проблема на самом деле не в разрешениях учетной записи, а в невидимом модальном диалоге, который FF ожидал во время работы в режиме обслуживания.
Однако по-прежнему невозможно создать PDF-файл, когда FF работает под учетной записью LocalSystem. FF говорит, что не может найти принтер, и мне интересно, это разрешение можно как-то включить?