0

サーバー上のファイルパスを定期的に検索し、その内容をコピーしてローカルPCの宛先に貼り付ける、ローカルPCにインストールするサービスを作成する必要があります。6時間か12時間ごとに実行するように設定したいと思います。また、昇格された資格情報を使用してcopyコマンドを実行するためにも必要です。グループポリシーでウイルスが原因でタスクが無効になっているため、スケジュールされたタスクを使用できません。以下は私がこれまでに持っているものです、それは多くはありません。

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);
      }
    }
}
4

1 に答える 1

0

「ウイルスが原因でそれらを無効にしますか?」-それは非常に疑わしいです。問題は、タスクスケジューラ自体ではなく、マシン上の別のアプリケーション/タスクスケジュールにあるようです。

タスクスケジューラここに行く方法です。定期的なスケジュールに使用しない理由はありません(コンソールアプリケーションを実行する必要があります)

これを行うサービスが必要な場合は、タイマーに依存せずに、Quartz.NETを使用してください。Quartz.NETは、タスクやジョブのスケジューリングなどを非常に豊富にサポートしており、この目的のために特別に作成されています。

この特定のケースでは、SimpleTriggerインスタンスがrepeatInterval実行します。タスクを実行するインスタンスを指定するだけです。

「毎週金曜日の正午」(夏時間などのために必要)の概念をサポートする必要がある場合は、が必要ですCronTrigger

トリガーを設定したら、トリガーの起動に基づいて実行するスケジュールとジョブを設定するだけです。

于 2012-10-03T15:29:24.363 に答える