2017-05-12 11 views
-1

私はいくつかのタスクを実行し、2時間ごとにレポートのメールを送信するアプリケーションに取り組んでいます。私はそれが働いている15分(ログオフ時でも)これを試してみました。しかし、もし私が30分を試​​しているのであれば、私の最初の郵便が送られているだけです。私のシステムがログオフされてもそれが送られるようにしたい。再起動しても、私のアプリケーションを実行したいです。私に提案してください。2時間ごとにメールを送信するアプリケーション

  System.Timers.Timer aTimer = new System.Timers.Timer(); 
      aTimer.Start(); 
      aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); 
      aTimer.Interval = 1000 * 60 * 120; 

      aTimer.Enabled = true; 
      Console.WriteLine("Application started"); 
      Console.WriteLine("Press \'q\' to quit the sample."); 
      Console.ReadLine(); 
      while (Console.Read() != 'q') ; 
+1

サーバーでこれを実行したり、Windowsサービスを使用してコードを実行したりするような音がします。 –

+2

これをコンソールアプリケーションで行うことは不可能ではありませんが、優先的なアプローチは、** Windowsサービス**を作成することです(バックグラウンドで頻繁に実行することを意図しています)。**コンソールアプリケーションを無期限に実行するのではなく、2時間おきに(たとえば、コマンドライン経由で)コンソールアプリケーションを起動します。 – Flater

+1

「私のシステムがログオフされてもそれを送信しますか?」とはどういう意味ですか?マシンの電源が切れたとき、またはユーザーがログアウトしたときを意味します。あなたのマシンは、スクリプトがオフになっている間はスクリプトを実行できません。 –

答えて

0

このサーバーを管理している場合は、この実行可能ファイルを30分ごとに実行するサービスまたはスケジュールされたタスクを作成することをお勧めします。タイマー付きで1つのexecを実行している場合、クラッシュした場合、それ以上のメールは送信されません。これは、サービスまたはスケジュールされたタスクでは該当しません。

+0

サービスを作成して試してみます – Simran

+0

サービスを作成しましたが、それは自分の要件に適しています – Simran

関連する問題