我使用 .Net framework 4.7 以C#作为语言创建了一个Windows服务。此服务基本上获取计算机硬件信息(CPU使用率)并将其写入日志文件(使用log4net)。在发布模式下编译服务后,当我使用 installutil 安装服务时,将创建服务并在启动服务时创建一个名称与' exe& #39;扩展名为' sys'的文件经常创建并删除。现在,当我停止服务时,它已不再创建。我以前使用.Net创建了一些Windows服务,但从未遇到过这样的行为。
static void Main()
{
#if DEBUG
Service serv = new Service();
serv.StartIt();
Thread.Sleep(20000);
serv.StopIt();
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service()
};
ServiceBase.Run(ServicesToRun);
#endif
}
Timer timer = null;
public Service()
{
InitializeComponent();
timer = new Timer(1000);
timer.Elapsed += Timer_Elapsed;
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
SystemInfo si = new SystemInfo();
si.GetSystemInfo();
}
#if DEBUG
public void StartIt()
{
timer.Start();
}
public void StopIt()
{
timer.Stop();
}
protected override void OnStart(string[] args)
{ }
protected override void OnStop() { }
#else
protected override void OnStart(string[] args)
{
timer.Start();
}
protected override void OnStop()
{
timer.Stop();
}
#endif
注意:我正在使用 OpenHardwareMonitor 库来收集硬件信息。