【发布时间】:2012-08-15 09:52:29
【问题描述】:
是否可以从控制台应用程序创建 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 的模型来访问我的数据库
【问题讨论】:
-
很模糊,您需要详细说明您尝试过的内容。
-
您可以将 Vici WinService 库与您的控制台应用程序链接,以将其变成功能齐全的 Windows 服务:viciproject.com/wiki/projects/winservice/home
-
@Liam 是正确的。请说明哪些内容不适用于您的服务。如果您不知道它为什么不起作用,请查看 Windows 事件日志。
-
控制台应用程序仍然可以执行假定它们可以访问用户桌面的操作。相同的代码将在服务应用程序中失败。以某种方式被欺骗作为服务运行的控制台应用程序将在完全相同的时间点失败。
标签: c# windows-services console-application