【发布时间】:2014-02-14 12:52:28
【问题描述】:
我有一个 Windows 服务。它工作正常。但我想将其转换为 exe 并使用命令行参数从其他服务调用它。我看到大多数关于将 exe 转换为服务但没有将服务转换为 exe 的文章。
【问题讨论】:
标签: .net c#-4.0 windows-services exe
我有一个 Windows 服务。它工作正常。但我想将其转换为 exe 并使用命令行参数从其他服务调用它。我看到大多数关于将 exe 转换为服务但没有将服务转换为 exe 的文章。
【问题讨论】:
标签: .net c#-4.0 windows-services exe
基本上这个过程是:
由于服务的启动时间很短,通常在 OnStart 中只执行基本的初始化步骤,并且延迟“真正的”执行(通过使用计时器或直到收到特定的 I/O 操作)。可执行程序没有这个限制,所以也许这也可以重构。
【讨论】:
我会创建一个应用程序,它可以用作独立的,也可以用作服务人员。为此,您需要创建一个新项目并移动所有与服务无关的代码。您需要重构启动代码以接受参数。这样,您将能够将此应用程序用作您拥有的服务中的 Worker 应用程序。但是如果没有启动参数,它就会像常规应用程序一样被破坏。
例如,当作为 service worker 运行时,您将使用如下启动路径在服务中启动进程:
"c:\program files\myCompany\MyApplication\app.exe /runAs sysAdmin /service 1 /jobId 123"
您的服务本身现在将只包含找到“待办事项”并启动“Worker”的代码。
您的工作人员在独立运行时将显示控制台黑屏或 win 应用程序表单。
【讨论】: