我有一个应用程序,我已经测试过作为控制台应用程序工作。 我现在已经将它转换为Windows服务,安装它,运行它,它仍然可以工作。Windows服务始终“开始”
但是,它始终具有Starting
的状态。似乎没有任何逻辑标志在ServiceBase
上设置。
我已经使用bool isRunning
标志设置了该服务,并且该程序在 while (isRunning) {}
块中运行。
我有一个应用程序,我已经测试过作为控制台应用程序工作。 我现在已经将它转换为Windows服务,安装它,运行它,它仍然可以工作。Windows服务始终“开始”
但是,它始终具有Starting
的状态。似乎没有任何逻辑标志在ServiceBase
上设置。
我已经使用bool isRunning
标志设置了该服务,并且该程序在 while (isRunning) {}
块中运行。
你是否阻止了OnStart
的回报?
通常会从那里产生一个线程来完成工作,并让该方法返回。
听起来好像你没有在启动阶段交付运行。
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new myservice() };
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += UnknownExceptionHandler;
Run(ServicesToRun);
}
听起来好像你已经在OnStart()事件中运行'while'循环,这意味着它永远不会退出。这可能是问题吗? – Darksider 2010-11-30 04:30:18