I zostały wdrożone prosty EmailService dla ASP.NET 2.0 (Identity poprzez interfejs IIdentityMessageService
Asp.Net Identity 2.0 - jak wdrożyć usługę IIdentityMessageService w celu przeprowadzenia asynchronicznego SMTP przy użyciu SmtpClient? .
public class EmailService : IIdentityMessageService
{
public Task SendAsync(IdentityMessage message)
{
// convert IdentityMessage to a MailMessage
var email =
new MailMessage(new MailAddress("[email protected]", "(do not reply)"),
new MailAddress(message.Destination))
{
Subject = message.Subject,
Body = message.Body,
IsBodyHtml = true
};
using (var client = new SmtpClient()) // SmtpClient configuration comes from config file
{
return client.SendMailAsync(email);
}
}
}
Aby wysłać wiadomość e-mail, idę przez UserManager:
await _userManager.SendEmailAsync(user.Id, "Confirm your account","Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
Problemem jest to, dostaję System.Threading.Tasks.TaskCanceledException
, gdy zadzwonię pod numer SendEmailAsync()
i nie jest jasne, dlaczego:
Jeśli wysyłam wiadomości e-mail synchronicznie (client.Send(email)
), wigilia rything działa dobrze.
Więc moje pytania to:
Jak mogę zapobiec TaskCanceledException z coraz wyrzucony? i (zakładając, że mogę rozwiązać ten błąd),
Jak mam iść o komunikowania błędów podczas wysyłanie e-maila do klienta (czyli „nie taki użytkownik tutaj” reakcje typu z smtpclient?
Oto szczegóły odpowiedzieć https://stackoverflow.com/a/45789677/3835843 – Arif