2010-11-30 118 views
1

我有一个应用程序,我已经测试过作为控制台应用程序工作。 我现在已经将它转换为Windows服务,安装它,运行它,它仍然可以工作。Windows服务始终“开始”

但是,它始终具有Starting的状态。似乎没有任何逻辑标志在ServiceBase上设置。

我已经使用bool isRunning标志设置了该服务,并且该程序在 while (isRunning) {}块中运行。

+2

听起来好像你已经在OnStart()事件中运行'while'循环,这意味着它永远不会退出。这可能是问题吗? – Darksider 2010-11-30 04:30:18

回答

8

你是否阻止了OnStart的回报?

通常会从那里产生一个线程来完成工作,并让该方法返回。

0

听起来好像你没有在启动阶段交付运行。

static void Main() 
    { 
    ServiceBase[] ServicesToRun; 
    ServicesToRun = new ServiceBase[] { new myservice() }; 
    AppDomain currentDomain = AppDomain.CurrentDomain; 
    currentDomain.UnhandledException += UnknownExceptionHandler; 
    Run(ServicesToRun); 
    }