Ошибка c # в службе Windows

У меня следующая ошибка:

 OpenSCManager Failed 5: Access is denied.  

Кто-нибудь может мне помочь? Есть ли другой способ, кроме использования installutil, для установки службы Windows?

P.S: Я использую Visual Studio 2008. Я искал installutil в C:\VisualStudio..., но тоже не могу его найти.

Я нашел исполняемый файл InstallUtil.exe. Я запускаю приложение и получаю сообщение об ошибке: c: ... \ InstallUtil, installLog запрещен. ЗАЧЕМ?


person elisa    schedule 28.03.2011    source источник
comment
Вы можете предоставить дополнительную информацию? Вы местный администратор?   -  person RobS    schedule 28.03.2011
comment
у меня все свойства на компе.   -  person elisa    schedule 28.03.2011
comment
@elisa, он должен быть в C: \ Windows \ Microsoft.NET \ Framework. Лучший способ установить услугу. Тем не менее, вы также можете сделать это программно, но если вам нужно спросить, просто не пытайтесь.   -  person Stephen Chung    schedule 28.03.2011
comment
Вы повышали уровень перед установкой этой службы?   -  person David Heffernan    schedule 28.03.2011
comment
ok.thx я нашел это :). Можете ли вы сказать мне, как я могу получить доступ к примеру installutil, если у меня есть путь к этому исполняемому файлу?   -  person elisa    schedule 28.03.2011
comment
Дэвид, что ты имеешь в виду?   -  person elisa    schedule 28.03.2011
comment
@elisa Под UAC админы работают со стандартным токеном прав. Чтобы получить токен прав администратора, который вы повышаете, запустите как администратор. Вы в курсе дела с UAC, не так ли?   -  person David Heffernan    schedule 28.03.2011
comment
Я запускаю приложение как администратор. так что проблема не в этом   -  person elisa    schedule 28.03.2011


Ответы (1)


Здесь есть два вопроса:

  1. Проблема с отказом в доступе. Скорее всего, у вас нет разрешений. Запустите команду с правами администратора. Это означает, что вы должны быть членом группы администраторов, и ваш процесс должен быть повышен, то есть вам нужно щелкнуть правой кнопкой мыши -> Запуск от имени администратора, чтобы запустить процесс.

  2. Есть много способов установить сервис. Поскольку вы уже знаете InstallUtil, мне не нужно об этом упоминать.

    • There is Win32 API called CreateService.
    • Есть утилита командной строки sc.exe - по умолчанию она входит в состав ОС.
    • Если вы так склонны, вы можете взломать реестр - перепроектировать записи в HKLM \ System \ CurrentControlSet \ Service \ не так уж и сложно.

Лично я предпочитаю sc.exe. Он отлично устанавливает управляемые службы.

person seva titov    schedule 29.03.2011