【问题标题】:Convert Windows Application to Windows Service将 Windows 应用程序转换为 Windows 服务
【发布时间】:2014-12-11 12:44:57
【问题描述】:

我有一个 Windows 应用程序,我想用 WINDOWS SERVICE 运行它。我已经创建了一个 WINDOWS SERVICE 应用程序,现在如何将我的 WIN APP 集成到这个 Windows 服务应用程序中?

【问题讨论】:

  • 通过将您的 Main() 逻辑放入 OnStart() 并确保您及时从那里返回。如果您需要任何更具体的帮助,我建议发布相关代码和特定问题。
  • 您有 Windows 应用程序的代码还是第三方代码?
  • @RonDeijkers 实际上它是一个中等规模的应用程序,代码很大。
  • 目前我有一个带有 Windows 应用程序和空 Windows 服务的解决方案。单个解决方案中的 2 个不同项目
  • 请帮帮我,我卡在这里...

标签: c# windows-services windows-applications


【解决方案1】:

这是一个很常见的要求,我建议您考虑以下几点: 我的代码将使用以下包:TopShelf

之后:

nuget Install-Package Topshelf

在你的开始有如下内容:

    public static int Main()
    {
        var exitCode = HostFactory.Run
        (
            c =>
            {
                c.Service<Service>
                (
                    sc =>
                    {
                        sc.ConstructUsing(name => new Service());

                        sc.WhenStarted((service, hostControl) => service.Start(hostControl));

                        sc.WhenStopped((service, hostControl) => Service.Stop(hostControl));
                    }
                );

                c.SetServiceName("ServiceName");

                c.SetDisplayName("DisplayName");

                c.SetDescription("Description");

                c.EnablePauseAndContinue();

                c.EnableShutdown();

                c.StartAutomaticallyDelayed();

                c.RunAsLocalSystem();
            }
        );

        return (int)exitCode;
    }

并遵循可用的配置 TopShelf configuration

我们在很多项目中都使用 TopShelf,它完全满足了我们的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多