Запуск службы Windows в качестве консольного приложения
Я хочу отладить службу Windows, но появляется сообщение об ошибке
Не удается запустить службу из команды линии или отладчика. Служба Windows должны быть установлены с использованием installutil.exe, а затем проводник сервера, службы Windows Административные средства или начало NET команда.
Я действительно не знаю об этой ошибке.....
![введите описание изображения здесь]()
Ответы
Ответ 1
Прежде чем запустить службу Windows, она должна быть "установлена" сначала с помощью installutil. EG:
C:\installutil -i c:\path\to\project\debug\service.exe
Затем вы можете открыть список Служб, чтобы запустить его. EG:
- Щелкните правой кнопкой мыши "Мой компьютер".
- Нажмите "Управление"
- Откройте "Услуги и приложения"
- Нажмите "Услуги"
- Найдите свою службу в списке и щелкните ее правой кнопкой мыши.
- Нажмите "Пуск"
Как только он запустится, вы можете перейти в Visual Studio, нажать "Отладка", затем нажать "Присоединить к процессу".
Другой метод заключается в том, чтобы добавить эту строку к вашему методу OnStart() в службе:
System.Diagnostics.Debugger.Launch();
Когда вы это сделаете, вам будет предложено выбрать экземпляр Visual Studio для отладки службы.
Ответ 2
Вы можете изменить режим запуска сборки в зависимости от того, находитесь ли вы в режиме DEBUG (обычно внутри Visual Studio, но не обязательно) или в режиме RELEASE (когда он запускается как служба в процессе производства):
Измените это:
static class Program
{
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyService()
};
ServiceBase.Run(ServicesToRun);
}
}
:
static class Program
{
static void Main()
{
#if(!DEBUG)
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyService()
};
ServiceBase.Run(ServicesToRun);
#else
MyService myServ = new MyService();
myServ.Process();
// here Process is my Service function
// that will run when my service onstart is call
// you need to call your own method or function name here instead of Process();
#endif
}
}
Техника взята из в этой статье, и кредит для автора статьи Техаса Вайшнава. Я скопировал фрагменты кода, потому что SO предпочитает полные ответы, а не ссылки, которые могут исчезнуть через некоторое время.
Ответ 3
Пожалуйста, проверьте, находитесь ли вы в режиме "DEBUG" или "RELEASE". Я получил эту ошибку, когда пытался отладить службу в режиме "RELEASE". Когда я изменил это на "DEBUG", все сработало нормально.
Это после того, как вы правильно установили сервис, как это было предложено другими людьми выше.
Ответ 4
У меня такая же ошибка. Решение Tried @C.Lawrence. Хотя я нашел свою службу в списке служб, но все же получил ту же ошибку. Я прочитал блог, который предложил подключиться к процессу в меню отладки, и вот, я не вижу свою службу в списке процессов.
Я был бы признателен за возможные варианты решения этой проблемы.
Спасибо.