Ive создал службу Windows под названием ProxyMonitor и im в настоящее время находится на этапе, когда служба устанавливает и удаляет способ, которым я хочу.Служба Windows для постоянного запуска
Так я исполняю приложение так:
C:\\Windows\\Vendor\\ProxyMonitor.exe /install
говорит само за себя, а затем я получил services.msc
и и запустить службу, но когда я делаю это я получаю следующее сообщение:
Служба прокси-монитора на локальном компьютере началась, а затем остановлена. Некоторые службы автоматически останавливается, если нет работы, чтобы сделать, например, журналы и оповещения Услуги
Мой код выглядит так:
public static Main(string[] Args)
{
if (System.Environment.UserInteractive)
{
/*
* Here I have my install logic
*/
}
else
{
ServiceBase.Run(new ProxyMonitor());
}
}
А потом в классе ProxyMonitor у меня есть:
public ProxyMonitor()
{
}
protected override void OnStart(string[] args)
{
base.OnStart(args);
ProxyEventLog.WriteEntry("ProxyMonitor Started");
running = true;
while (running)
{
//Execution Loop
}
}
и onStop()
Я просто изменяю переменную running
на false
;
Что мне нужно сделать, чтобы служба постоянно активна, так как я должен был бы осуществлять мониторинг сети, мне нужно отслеживать изменения и т.д.
Update: 1
protected override void OnStart(string[] args)
{
base.OnStart(args);
ProxyEventLog.WriteEntry("ProxyMonitor Started");
Thread = new Thread(ThreadWorker);
Thread.Start();
}
В пределах ThreadWorker
у меня есть ProxyEventLogger.WriteEntry("Main thread entered")
, который не срабатывает.
'Thread = новая тема (ThreadWorker)' не будет работать –
работает прекрасно, почему вы думаете, оно не будет? – RobertPitt