Windows服务在一周内运行一次

如何使Windows服务在上午12点的每个星期一运行

请指导我。

我已经试过以下一个..

protected void InitializeTimer() { if (timer1 == null) { timer1 = new Timer(); timer1.AutoReset = true; var todayInWeek = DateTime.Now.Date.DayOfWeek; DateTime _scheduleTime = DateTime.Parse(System.Configuration.ConfigurationManager.AppSettings["ScheduledTime"]); if (todayInWeek == DayOfWeek.Monday) { timer1.Elapsed += new ElapsedEventHandler(schedular()); } } } private void schedular(object sender, ElapsedEventArgs e) { try { } catch (Exception ex) { } } 

正如人们在评论中所说,创建一个简单的控制台应用程序,然后安排一个任务。

要启动Task Scheduler只需在Windows搜索栏中键入Task SchedulerTaskschd.msc

然后选择一个Create Task...在右侧。 将其指向您的控制台应用程序,然后创建一个新的触发器,它应该在12.00每星期一运行,如下所示:

在这里输入图像说明

有关在Task Scheduler中创建任务的更多信息

https://technet.microsoft.com/en-us/library/cc748993%28v=ws.11%29.aspx?f=255&MSPPError=-2147217396

您可以考虑使用Topshelf和Quartz.net进行调度 – 您可以创建一个控制台应用程序,将其安装为Windows服务,然后将其配置为每24小时运行一次。 如果你需要改变时间表,那么这将非常灵活 – 我通过windows GUI那种笨重的方式找到了调度任务。