gpt4 book ai didi

c# - 从控制台应用程序制作 Windows 服务

转载 作者:行者123 更新时间:2023-11-30 22:26:16 25 4
gpt4 key购买 nike

是否可以从控制台应用程序创建 Windows 服务。事实上,我制作了一个控制台应用程序,可以从数据库向人员发送电子邮件,但是当我尝试使用几乎相同的代码制作服务时,它不起作用。安装后不再发送电子邮件。因此,如果有办法,我想将我的控制台应用程序转换为服务,因为我想自动发送它们并且我不想使用任务调度程序。

这是我的主控制台应用程序

     {
MailMessage mail = new MailMessage();
mail.From = new MailAddress(ConfigurationManager.AppSettings["email"]);
mail.Subject = "Rappel délai tâche";
SmtpClient client = new SmtpClient(ConfigurationManager.AppSettings["domaine"]);
client.EnableSsl = true;

client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["email"], ConfigurationManager.AppSettings["password"]);

BDGestionEntities bd = new BDGestionEntities();
TimeSpan diff;
DateTime aujourdhui = DateTime.Today;
List <tache> taches = bd.taches.ToList();

foreach (var k in taches)
{
Console.WriteLine(k.nom_tache);
diff = k.date_fin.Subtract(aujourdhui);
int datediff = Convert.ToInt32(diff.TotalDays);
if (datediff <= 2)
{



mail.To.Add(k.utilisateur.email);

mail.Body = "Bonjour, " + k.utilisateur.nom + " " + k.utilisateur.prenom +
"\n\nNous vous envoyons le présent mail pour vous rappeler que la tâche \"" + k.nom_tache + "\" qui vous est accordée touchera à sa fin d'ici deux jours.\nVeuillez respecter le délai. \n\n Bien cordialement.";
try
{
client.Send(mail);
Console.WriteLine("Email envoyé");
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
}
}
}

事实上,我正在使用带有 ado .net 的模型来访问我的数据库

最佳答案

与其尝试直接转换它,不如先尝试编写一个非常简单的服务来感受它的工作原理。也许是一些简单的事情,比如每 5 分钟将日期和时间写入一个文件。然后您可以尝试将您的代码添加到服务主体。

显然,您需要避免任何写入屏幕的内容。这应该写入日志或事件查看器。

关于c# - 从控制台应用程序制作 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com