3

我有一个想要作为 Windows 服务运行的 Windows 应用程序 - 我该怎么做?

4

5 回答 5

3

您可以使用一个工具来执行此操作:XYNTService

这是一项可以启动常规应用程序的服务,我们在工作中使用它,它也适用于 GUI 应用程序。由于该服务在本地 SERVICE 帐户下运行,因此您无法看到 GUI 或以任何方式访问它,因为它正在另一个 winlogon 会话中运行。

于 2008-12-11T15:49:48.333 回答
2

Quick-n-dirty 方式,使用 Windows 资源工具包中的 INSTSRV 和 SRVANY 工具: 如何创建用户定义的服务

于 2008-12-11T15:45:53.990 回答
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 的链接是一个很好的链接。

于 2008-12-11T15:54:50.150 回答
1

尝试这个:

http://support.microsoft.com/kb/137890

它适用于任何版本的 Windows。我最近使用 Server 2008 对其进行了测试。

于 2010-07-24T08:22:09.163 回答
0

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

祝你好运!

于 2010-07-24T08:12:21.367 回答