miałem następujące dla poczty elektronicznej, który pracował:asynchroniczny moduł lub obsługi zakończono natomiast operacja asynchroniczna została jeszcze w toku
private SmtpClient _client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("[email protected]", "password"),
EnableSsl = true
};
public void DoThis(){
_client.Send("[email protected]", to.Email, "Subject", "Body");}
public void DoThat(){
_client.Send("[email protected]", to.Email, "Subject", "Body");}
Ale to było blokowanie aplikacji internetowych aż email został wysłany, więc postanowiłem spróbuj wysłać asynchronicznie:
public void DoThis(){
var message = new MailMessage("[email protected]", to.Email, "Subject", "Body");
_client.SendAsync(message, null);
}
Który widzę coraz traktowane asynchronicznie jeśli debugować, ale zawsze pojawia się następujący:
An asynchronous module or handler completed while an asynchronous operation was still pending.
Co robię źle?
Asynchrony nie zmieniają faktu, że długotrwałe procesy nie powinny być obsługiwane w usługach IIS. Powinieneś rzucić to do tabeli zadań i pozwolić mu na powtarzające się zaplanowane zadanie lub usługę Windows. –
@RobVious Mam do czynienia z tym samym problemem. Czy byłeś w stanie to rozwiązać? – Bitsian
@Bitsian yeah, zobacz moją odpowiedź poniżej – RobVious