Я создал службу Windows под названием ProxyMonitor , и в настоящее время я нахожусь на стадии, когда служба устанавливается и удалить так, как я хочу.
Итак, я запускаю приложение так:
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 («Основной поток введен»)
, который не запускается.