C# 控制台应用程序每2小时发送一封邮件

C# 控制台应用程序每2小时发送一封邮件,c#,console-application,C#,Console Application,我正在开发一个应用程序,它执行一些任务,并每2小时发送一封报告邮件。我已经尝试了15分钟,它正在工作(即使在注销)。但是,如果我尝试30分钟,只有我的第一封邮件被发送。我希望它被发送时,我的系统也注销。即使在重新启动后,我也希望我的应用程序能够运行。请推荐我 System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Start(); aTimer.Elaps

我正在开发一个应用程序,它执行一些任务,并每2小时发送一封报告邮件。我已经尝试了15分钟,它正在工作(即使在注销)。但是,如果我尝试30分钟,只有我的第一封邮件被发送。我希望它被发送时,我的系统也注销。即使在重新启动后,我也希望我的应用程序能够运行。请推荐我

            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') ;

如果您正在管理此服务器,那么最好创建一个每30分钟运行一次此可执行文件的服务或计划任务。如果您正在运行一个带计时器的exec,那么如果它崩溃,将不会再发送邮件。服务或计划任务并非如此。

尽管控制台应用程序也不可能做到这一点,但首选的方法是创建Windows服务(专门用于在后台连续运行),或计划每两小时启动控制台应用程序的作业(例如,通过命令行),与控制台应用程序无限期运行不同。听起来您希望在服务器上运行此应用程序,或使用Windows服务运行代码。您所说的“我希望在系统注销时发送”是什么意思?您的意思是当机器关闭或用户注销时?您的机器在关闭时无法运行脚本…我的意思是当用户登录时off@JayGould是的,我想在服务器上运行这个。现在我正在一台机器上测试它。我将通过创建一个服务来尝试它。创建一个服务,它可以很好地满足我的要求