Windows服务无法执行OnStart()

时间:2012-04-05 10:58:24

标签: c# .net windows windows-services

我遇到了一个非常简单的Windows服务问题。我创建了Walkthrough: Creating a Windows Service Application in the Component Designer中解释的服务。

我有:

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

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

我以localadmin安装,启动和停止服务。

1 个答案:

答案 0 :(得分:2)

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

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

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