Ive создал службу Windows под названием ProxyMonitor и im в настоящее время на этапе установки и удаления службы, как я ее хочу.
Итак, я выполняю приложение следующим образом:
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
;
Что мне нужно сделать, чтобы сделать службу постоянно активной, так как мне нужно будет контролировать сеть, в которой мне нужно отслеживать изменения и т.д.
Обновление: 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")
, который не срабатывает.