我有一个应用程序,我已经测试过它作为控制台应用程序。 我现在已将其转换为Windows服务,安装它,运行它,它仍然可以正常工作。
但是,它的状态始终为Starting
。似乎没有任何逻辑标志可以在ServiceBase
上设置。
我使用bool isRunning
标志设置了服务,程序在a中运行
while (isRunning) {}
阻止。
答案 0 :(得分:9)
您是否阻止OnStart
的回复?
通常会从那里生成一个线程来完成工作,让方法返回。
答案 1 :(得分:0)
听起来好像你没有在启动阶段交出跑步。
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new myservice() };
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += UnknownExceptionHandler;
Run(ServicesToRun);
}