【发布时间】:2011-06-19 09:04:00
【问题描述】:
我创建了一个名为 ProxyMonitor 的 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"),它不会被解雇。
【问题讨论】:
标签: c# windows-services