Atl сервис не регистрируется - PullRequest
2 голосов
/ 06 ноября 2008

Я пытаюсь зарегистрировать службу atl, используя

ExeName.exe / service

как описано здесь: http://msdn.microsoft.com/en-us/library/74y2334x(VS.80).aspx

Однако после этого он не отображается в моей панели управления службами (ту, к которой я попадаю, набрав Services в поле запуска на Vista).

Я попытался покопаться в коде atl, чтобы увидеть, где он обрабатывает ключ / service, но не могу его найти, хотя я могу найти код для обработки / RegServer и / UnregServer

Раньше это работало, мне как-то раньше удавалось зарегистрировать этот сервис. Но теперь я переехал и не могу снова его зарегистрировать. Когда я запускаю ExeName.exe / service, он запускается как локальный сервер, если я сначала выполняю / RegServer, но хочу, чтобы он был установлен как служба.

Я что-то упустил, и вы знаете, где выполняется обработка переключателя / service?

Ответы [ 4 ]

1 голос
/ 08 января 2011

Работая с методом CAtlServiceModule :: Install из коробки, вы должны использовать правильные заглавные буквы для каждого аргумента - "/ Service", "/ UnregServer" и т. Д.

1 голос
/ 21 января 2009

Так же, как это делал JaredPar, попробуйте команду с Power Shell с полными правами администратора.

1 голос
/ 06 ноября 2008

Снято в темноте: вы работаете на Vista? Если это так, убедитесь, что вы работаете с полными привилегиями администратора. В противном случае вы можете зарегистрировать это приложение с помощью виртуализации.

0 голосов
/ 06 ноября 2008

Убедитесь, что вы случайно не набрали несколько символов в имени функции ParseCommandLine в классе CAtlServiceModuleT, определенном в atlbase.h

Если вы сделаете это, в базовом классе есть версия этой функции, которая будет означать, что все будет хорошо скомпилироваться, и вам может потребоваться целый день, чтобы обнаружить эту ошибочную ошибку!

; -)

...