我在服务中使用以下代码来成功调试服务,方法是将服务作为控制台应用程序运行并验证一切正常。但是稍后当我安装服务并将其作为Windows应用程序启动时,服务正在运行如服务控制台所示,但它没有完成工作。我想知道在这种情况下出了什么问题。谢谢。
static void Main() { System.ServiceProcess.ServiceBase [] ServicesToRun;
if (Environment.UserInteractive)
{
ListenerSVC service = new ListenerSVC();
service.OnStart(null);
Console.WriteLine("Press any key to stop program");
Console.Read();
service.OnStop();
}
else
{
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new ListenerSVC() };
ServiceBase.Run(ServicesToRun);
}
}
答案 0 :(得分:2)
您是否尝试过捕获/记录任何异常?最可能的原因是安全性(即服务帐户无法访问某些资源)。通常还有一个isue为服务定位.config文件(如果您使用的是config,请注意)。最后,为简单起见,请尝试使用命令arg,以防UserInteractive
报告错误 - 我倾向于使用“-c”进行控制台/调试模式。