我需要创建一个服务,安装在本地PC上,定期查看服务器上的文件路径,并将其内容复制并粘贴到本地PC上的目标。我想将它设置为每六或十二小时左右运行一次。我还需要它来运行带有提升凭证的复制命令。我们无法使用计划任务,因为我们的组策略禁用了由病毒引起的任务。以下是我到目前为止的情况,并不多。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
using System.IO;
using System.Timers;
namespace PHSReportUpdater
{
public class Timer1
{
private static System.Timers.Timer aTimer;
public static void Main()
{
// Create a timer with an interval
aTimer = new System.Timers.Timer(600000);
// Hook up the Elapsed event for the timer
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Set the Interval
aTimer.Interval = 21600000;
aTimer.Enabled = true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
string reportSource;
string reportDest;
reportSource= @"V:\PrivateFolders\McKesson Surgery & Anesthesia\Crystal Reports\ProMedica Custom Reports\PHS PC\*.rpt";
reportDest= @"C:\Program Files\McKesson\PHS\VER15.0\Reports";
File.Copy(reportSource, reportDest);
}
}
}
答案 0 :(得分:0)
“禁用病毒导致的病毒?” - 这非常可疑。听起来问题在于机器上的另一个应用程序/任务计划,而不是任务计划程序本身。
任务计划程序 是这里的方式,没有理由不将它用于定期计划(让它运行你的控制台应用程序)。
如果必须拥有执行此操作的服务,请不要依赖计时器,请使用Quartz.NET,因为它具有非常丰富的支持安排任务/工作等,是专门为此目的而创建的。
在这种特殊情况下,SimpleTrigger
实例会执行此操作,只需为其提供您希望运行任务的repeatInterval
。
如果你需要支持“每周五中午”的概念(由于夏令时之类的事情你需要这个概念),那么你需要一个CronTrigger
。
设置好触发器后,根据触发器的触发执行simple matter of setting up the schedule and job。