我遇到了一个非常简单的Windows服务问题。 我已经创build了这个服务,就像在演示:在组件devise器中创build一个Windows服务应用程序 。
我有:
我可以通过net start/stop <servicename>
启动和停止服务。 但是,即使我在服务的构造函数中执行操作,也没有任何反应。
我安装,启动和停止服务作为localadmin。
您的服务初始化代码应该在OnStart事件处理程序中,而不是构造函数。 您的服务清理和关机代码应该在OnStop事件中进行。
在启动事件中,您应该真正做的就是启动一个工作线程,只要您的服务处于活动状态并执行实际的处理,工作线程就会运行。 您可以使用BackgroundWorker组件来简化此操作。 当服务停止时,您执行任何必要的清理,并终止后台线程。
OnStart和OnStop事件处理程序中的代码不应超过一两秒才能运行–Windows服务管理器正在等待服务报告它是否已成功启动或停止,并且如果您的服务不能运行,快速向服务控制管理器反馈意见。