(1) 看看如何从 System.ServiceProcess.ServiceBase 和特别是 OnStart() 事件创建一个类。
public class MyService : System.ServiceProcess.ServiceBase
{
protected override void OnStart(string[] args){}
}
(2) 无法从 wcf 服务调用创建 Windows 服务,但可以发出启动信号。
(3) 我使用 Release|Debug 开关来允许在调试模式下调试服务启动,但是,这对我来说很容易。
static void Main()
{
#if (!DEBUG)
System.ServiceProcess.ServiceBase[] servicesToRun;
servicesToRun = new System.ServiceProcess.ServiceBase[] { new MyService() };
System.ServiceProcess.ServiceBase.Run(servicesToRun);
#else
MyService service= new MyService();
service.OnStart(null);
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#endif
}
(4) 您可能需要设置服务代理计划以按时间间隔运行。查看线程和线程池以及刷新数据和服务运行时间的计时器。