コンソール アプリケーションから 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 のモデルを使用しています