启动Windows服务时不断遇到此错误消息。
本地计算机上的服务启动后停止。如果其他服务和程序不使用某些服务,它们会自动停止。
我的代码:
protected override void OnStart(string[] args)
{
string eventLogMessage = string.Format(@"Notify Service is starting :{0}", DateTime.Now);
EventLogging.LogInformation(eventLogMessage);
double interval;
try
{
interval = Convert.ToDouble(ConfigurationManager.AppSettings["intervalInSeconds"]);
EventLogging.LogInformation(
string.Format("Loaded configuration: Interval duration is {0} minutes", (interval / 60)));
}
catch (Exception exception)
{
interval = 3600;
eventLogMessage = string.Format("Loading configuration failed: Interval duration is {0} minutes", (interval / 60));
eventLogMessage += string.Format("\nMessage was: {0}", exception.Message);
EventLogging.LogWarning(eventLogMessage);
}
interval = interval * 1000;
_timer.Interval = interval;
_timer.Elapsed += TimerTick;
_timer.Start();
eventLogMessage = string.Format(@"Notify service has started: {0}", DateTime.Now);
EventLogging.LogInformation(eventLogMessage);
var workerThread = new Thread(NotifyUsers) { IsBackground = true };
workerThread.Start();
}
private void NotifyUsers()
{
var userBL = new UserBL();
List<User> usersToBeMailed = userBL.GetAllUsersWhosePasswordsWillExpire();
string eventLogMessage = string.Format("Number of users to be mailed is {0}", usersToBeMailed.Count);
EventLogging.LogInformation(eventLogMessage);
foreach (User user in usersToBeMailed)
{
userBL.MailUser(user);
}
}
private void TimerTick(object sender, ElapsedEventArgs e)
{
var workerThread = new Thread(NotifyUsers) { IsBackground = true };
workerThread.Start();
}
protected override void OnStop()
{
base.OnStop();
string eventLogMessage = @"Password notify service has stopped: " + DateTime.Now;
EventLogging.LogInformation(eventLogMessage);
}
protected override void OnPause()
{
base.OnPause();
_timer.Stop();
EventLogging.LogWarning("Paused");
}
protected override void OnContinue()
{
base.OnContinue();
_timer.Start();
EventLogging.LogInformation("Resumed");
}
}
你必须至少有一个线程在做某事,而不是作为后台线程,以保持进程的活力。运行OnStart代码的线程实际上不是您的线程之一,此外,您必须从OnStart返回才能被视为已成功启动。
这可以像从您的OnStart
方法创建并运行一个新的Thread
一样简单,该方法只需等待您从OnStop
代码设置的ManualResetEvent
对象。
或者,为这个线程找到一些有用的工作来做(但是仍然使用事件对象来指示它何时应该关闭),或者选择二——考虑这段代码是否属于服务。如果它只是定期唤醒来通知用户,为什么不改用计划任务呢?
我已经从以下网站下载了“jenkins-1.501.zip”http://jenkins-ci.org/content/thank-you-downloading-windows-installer . 我已经解压缩了zip文件并成功地在Windows7上安装了Jenkins。詹金斯在好的。我想从控制台停止Jenkins服务。我该怎么做?通过控制台/命令行启动和重新启动的方式是什么?
问题内容: 我已经从http://jenkins-ci.org/content/thank-you-downloading-windows- installer 下载了“ jenkins-1.501.zip” 。 我已经解压缩了zip文件,并在Windows 7上成功安装了Jenkins。詹金斯的表现不错。我想从控制台停止Jenkins服务。我怎样才能做到这一点?通过控制台/命令行启动和重新启动的
本文向大家介绍基于C#实现Windows服务状态启动和停止服务的方法,包括了基于C#实现Windows服务状态启动和停止服务的方法的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式展示了基于C#实现Windows服务状态启动和停止服务的方法。非常实用。分享给大家供大家参考之用。具体方法如下: 首先先引用: 然后在引用命名空间: 建立服务对象: 服务运行则停止服务: 服务停止则启动服务: 希望
Jenkins作为一项windows服务,已经运行了几个月,没有出现任何问题。 我做了一些Jenkins更新(将一个更新的.war文件复制到.Jenkins文件夹),也进行了一些windows更新。我的版本是Jenkins 2.263.3。 我浏览了很多文档和其他StackOverflow票据,发现JENKINS_HOME环境变量缺失。我加了这个。 这是我的调查揭示的。 设置Java环境变量-见下
问题内容: 我们如何从Java启动/停止Windows服务?例如,我想从Java启动和停止mysql Windows服务。 如果可以启动/停止,那么是否可以知道服务是否成功启动? 问题答案: 您可以使用字符串数组来制定命令提示符脚本来启动,停止和检查服务状态: 使用以下命令执行脚本:
我已将spring-boot应用程序部署到IIS/嵌入式tomcat,作为一个azure应用程序服务。当应用程序服务启动时,应用程序日志显示同一实例大约每10分钟发生一次重新启动(新的pid)。90分钟后,它将最终成功部署。我从嵌入的tomcat日志和org.springframework日志中看不到任何问题,但有时它可能在2分钟内开始。 我还可以在哪里查找启动错误,有没有办法增加应用服务启动时间