我有一个Windows应用程序,我想将其作为Windows服务运行 - 我该怎么做?
如果您的项目已经将控制器和业务逻辑分离得很好(MVC),那么这将非常容易和快速。
首先,在您的解决方案中创建一个新项目,并选择“Windows 服务”。这将为您创建一个包含 Main 的 Program 类的新项目。
在 Main 中,您需要附加 Service Base 类。
static class Program
{
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
ServiceBase.Run(ServicesToRun);
}
}
在您的服务中(扩展ServiceBase的那个),您需要重写:
protected override void OnStart(string[] args)
要调用您的控制器来启动作业,或者您可以使用线程在 while(...) 中简单地启动。
否则,Patrick Cuff 的链接是一个好选择。