Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: niklep от Апрель 21, 2011, 22:10



Название: QTService и config-файл службы
Отправлено: niklep от Апрель 21, 2011, 22:10
Доброго времени суток.
Необходимо написать программу, которая создает службу в Windows. При этом эта служба должна при старте прочитать кое-какие параметры из xml-файла.
Теперь собственно что не получается: служба инсталлируется и запускается, но упорно не хочет парсить xml-файл. Класс работы с xml железно работает, проверял на простом проекте. Поэтому возникает подозрение, что служба xml-файл просто не видит. Называется файл config.xml и лежит рядом с бинарником службы. Пробовал его кинуть в system32 - не помогает.
Далее я прочитал, что в винде службы должны читать конфиги из файла "serviceName.exe.config". Так и поступил, переименовал файл. Теперь у меня служба даже не устанавливается:
Код:
...>controller -i "C:\temp\Projects\HWServices\run\COMService.exe"
The service was not installed.

Сообщение в Журнале Событий:
Код:
Тип события:	Ошибка
Источник события: SideBySide
Категория события: Отсутствует
Код события: 59
Дата: 22.04.2011
Время: 0:52:27
Пользователь: Н/Д
Компьютер: PC
Описание:
Generate Activation Context завершилась не удачно для C:\temp\Projects\HWServices\run\COMService.exe. Соответствующее сообщение об ошибке: Операция успешно завершена.
Вся шляпа в имени файла? о_0 Мне кажется, я уже близко подобрался к истине. Кто что посоветует? =)
P.S. Под админом логинился - все равно без результата.


Название: Re: QTService и config-файл службы
Отправлено: niklep от Апрель 22, 2011, 09:52
Может кому пригодится. Путь к конфигу надо указывать относительно бинарника следующим образом:
Код:
QString xmlFileName = QApplication::aplicationDirPath() + QDir::separator() + "config.xml";
QFile file(xmlFileName);