2

我遇到了一个非常简单的 Windows 服务的问题。我已经按照演练:在组件设计器中创建 Windows 服务应用程序中的说明创建了服务。

我有:

  • 应该在 c:\mylogs 中创建一个简单文件的服务
  • 一个 serviceinstaller(serviceprocessinstaller 作为 LocalSystem 运行)
  • 安装服务的安装项目

我可以通过 启动和停止服务net start/stop <servicename>。但是,即使我在服务的构造函数中执行操作,也没有任何反应。

我以本地管理员身份安装、启动和停止服务。

4

1 回答 1

2

您的服务初始化代码应该放在 OnStart 事件处理程序中,而不是构造函数中。您的服务清理和关闭代码应该在 OnStop 事件中。

在启动事件中您真正应该做的就是启动一个工作线程,只要您的服务处于活动状态并进行实际处理,该工作线程就会运行。您可以使用 BackgroundWorker 组件来简化此操作。当服务停止时,您进行任何必要的清理,并终止后台线程。

OnStart 和 OnStop 事件处理程序中的代码运行时间不应超过一两秒 - Windows 服务管理器正在等待服务报告它是否已成功启动或停止,如果您的服务没有,您将看到错误t 迅速向服务控制经理提供反馈。

于 2012-04-05T11:39:41.647 回答