Конференция "WinAPI" » COM сервер в службе...
 
  • d@vinchi © (09.09.09 10:56) [0]
    Есть служба, необходимо к ней прикрутить интерфейсы для мониторинга ее состояния и получениея данных, которые накапливаются в ходе работы. Поиск тут (и практичеки везде) привел к исходникам автора Набережных_С, где реализуется СОМ сервер в разных вариантах работающий в основном потоке самой службы.
    Подскажите мой ли это вариант?
    На данный момент к службе прикручен СОМ сервер, фабрика создается как обычно, служба регистрируется к ключем /install, СОМ сервер с ключем /regserver - все вроде чудесненько и служба работает, но при обращении к СОМ серверу после создания он сразу завершает работу - оно и понятно т.к. он находтся в ехе-шнике службы, который должен пускаться по другому и т.к. не установил связь с SCM то процесс завершается с соответсвующим событием в системном журнале. Кроме того при запуске СОМ сервера запускается еще однин экземпляр от миени пользователя.
    Дело в том что меня вполне устраивает, что при запуске СОМ сервера запускается дополнительный процесс и СОМ сервер независим от процесса службы, т.е. СОМ сервер в моей реализации должен быть доступен даже если служба не запущена...
    Есть ли возможность заставить процесс службы не завершаться когда он запускается от подключения к СОМ серверу (отследить это можно так - в момент запуска процесса ParamStr(1) будет равным '-Embedding'), тогда все гораздо проще получается и этот процес сам завершится когда последний пользователь отсоединится от СОМ сервера...
  • Сергей М. © (09.09.09 11:09) [1]

    > Подскажите мой ли это вариант?


    Да.


    > СОМ сервер в моей реализации должен быть доступен даже если
    > служба не запущена


    Что же тогда ты собираешься мониторить, если она не запущена ?
  • d@vinchi © (09.09.09 11:20) [2]
    Сергей, в принципе Вы правы, мониторить нечего, следовательно данных тоже не собирешь...
    Можете подробнее рассказать что там с настройками безопасности? Я так понимаю что служба работает в "нулевом" сеансе, в который не системная учетная запись войти не может и соответственно обратитьься к данным в этом сеансе. Надо настраивать в dcomcfg разрешения определенным пользователям на доступ к СОМ объекту?
  • d@vinchi © (09.09.09 11:36) [3]
    Подскажите каким образом традиционно реализуется обмен данныими со службой?
  • Сергей М. © (09.09.09 12:41) [4]
    Универсальный способ на все случаи жизни - по протоколу TCP
 
Конференция "WinAPI" » COM сервер в службе...
Есть новые Нет новых   [134434   +27][b:0][p:0]