如何将我的应用程序作为Windows服务启动?

3
我有一个Windows应用程序,我想将其作为Windows服务运行 - 我该怎么做?

你在用什么进行编程呢?.Net吗? - kemiller2002
请参考这个问题,它几乎相同: http://stackoverflow.com/questions/6715277/how-to-start-the-mysql-service-before-my-windows-service/6724464#6724464 - Yaman
5个回答

3
你可以使用工具来完成这个任务:XYNTService
它是一个能够启动常规应用程序的服务,我们在工作中使用它,并且它也可以与GUI应用程序一起使用。由于该服务在本地SERVICE帐户下运行,因此您无法看到GUI或以任何方式访问它,因为它在另一个winlogon会话中运行。

2

1

1

针对您拥有源代码的 .Net 应用程序的解决方案:

如果您的项目已经将控制器和业务逻辑分离得很好(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 的链接是一个好选择。


0
除了已经推荐的XYNTService和SRVANY之外,您还应该考虑使用AlwaysUp,这是一款商业产品,旨在将任何应用程序作为Windows服务运行。您可以免费试用30天,以确保它能够为您完成工作。
祝您好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接