Windows服务不执行OnStart()

我遇到了一个非常简单的Windows服务问题。 我已经创build了这个服务,就像在演示:在组件devise器中创build一个Windows服务应用程序 。

我有:

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

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

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

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

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

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