我创建了一个名为ProxyMonitor的Windows服务,而我目前正在按照我想要的方式安装和卸载服务。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
;
我需要怎么做才能使服务不断活跃,因为我将需要监控网络我需要跟踪变化等
更新: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")
哪些不会被解雇。
`线程=新主题(ThreadWorker)`不会工作 – 2011-02-01 16:10:05
工作完全正常,为什么你认为它会失败? – RobertPitt 2011-02-01 22:37:45