如何将Windows服务转换为可执行应用程序(控制台)Exe?

时间:2014-02-14 12:52:29

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

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

2 个答案:

答案 0 :(得分:0)

基本上,过程将是:

  1. 创建新的exe项目(可能是控制台应用程序)
  2. 在Main方法中,您可以将相同的代码放在服务的OnStart()方法上。
  3. 由于服务的启动时间很短,通常只在OnStart中执行基本的初始化步骤,并且延迟“实际”执行(通过使用定时器或直到收到特定的I / O操作)。可执行程序没有这个限制所以也许这可能会被重构。

答案 1 :(得分:0)

我会创建一个应用程序,可以单独使用,也可以作为服务工作者使用。为此,您需要创建一个新项目并移动所有与服务无关的代码。您需要重构启动代码以接受参数。这样,您就可以在此服务中将此应用程序用作Worker应用程序。但是,如果没有启动论证,它将毁于常规应用程序。

例如,当作为服务工作者运行时,您将使用如下所示的启动路径启动服务中的进程:

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

您的服务本身现在只包含找到“要做的工作”的代码并启动“工作人员”。

作为独立运行的工作人员将显示控制台的黑屏或获胜应用的表单。