我遇到了一个非常简单的Windows服务问题。我创建了Walkthrough: Creating a Windows Service Application in the Component Designer中解释的服务。
我有:
我可以通过net start/stop <servicename>
启动和停止服务。但即使我在服务的构造函数中执行操作,也没有任何反应。
我以localadmin安装,启动和停止服务。
答案 0 :(得分:2)
您的服务初始化代码应该放在OnStart事件处理程序中,而不是构造函数中。您的服务清理和关闭代码应该在OnStop事件中。
你应该在启动事件中真正做的就是激活一个工作线程,只要你的服务处于活动状态就可以运行并进行实际处理。您可以使用BackgroundWorker组件来简化此操作。当服务停止时,您执行任何必要的清理,并终止后台线程。
OnStart和OnStop事件处理程序中的代码运行时间不应超过一秒或两秒 - Windows服务管理器正在等待服务报告它是否已成功启动或停止,如果您的服务不会快速向服务控制管理器提供反馈。