【问题标题】:How to convert an Windows service to an Executable application(console) Exe?如何将 Windows 服务转换为可执行应用程序(控制台)Exe?
【发布时间】:2014-02-14 12:52:28
【问题描述】:

我有一个 Windows 服务。它工作正常。但我想将其转换为 exe 并使用命令行参数从其他服务调用它。我看到大多数关于将 exe 转换为服务但没有将服务转换为 exe 的文章。

【问题讨论】:

    标签: .net c#-4.0 windows-services exe


    【解决方案1】:

    基本上这个过程是:

    1. 创建新的 exe 项目(可能是控制台应用程序)
    2. 在 Main 方法中,您可以在服务的 OnStart() 方法中添加相同的代码。

    由于服务的启动时间很短,通常在 OnStart 中只执行基本的初始化步骤,并且延迟“真正的”执行(通过使用计时器或直到收到特定的 I/O 操作)。可执行程序没有这个限制,所以也许这也可以重构。

    【讨论】:

      【解决方案2】:

      我会创建一个应用程序,它可以用作独立的,也可以用作服务人员。为此,您需要创建一个新项目并移动所有与服务无关的代码。您需要重构启动代码以接受参数。这样,您将能够将此应用程序用作您拥有的服务中的 Worker 应用程序。但是如果没有启动参数,它就会像常规应用程序一样被破坏。

      例如,当作为 service worker 运行时,您将使用如下启动路径在服务中启动进程:

      "c:\program files\myCompany\MyApplication\app.exe /runAs sysAdmin /service 1 /jobId 123"
      

      您的服务本身现在将只包含找到“待办事项”并启动“Worker”的代码。

      您的工作人员在独立运行时将显示控制台黑屏或 win 应用程序表单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 1970-01-01
        • 2011-04-22
        • 1970-01-01
        相关资源
        最近更新 更多