Я запускаю обработчик HTTP-кода C# (ashx) для отправки почты в течение многих лет. Мы считаем, что проблема началась, когда мы переключились на 4.5.1. Мы получаем ошибку:Асинхронная ошибка в SmtpClient SendMailAsync в http-обработчике (ashx)
«Асинхронная операция не может быть запущен в это время асинхронные операции могут быть запущены только в асинхронном обработчике или модуля или во время определенных событий в жизненном цикле страницы ...»
I использовал:
public static void sendMessage(....
...
client.SendAsync(message);
Осмотрев за то, что происходит, этот метод был изменен на:
public static async Task sendMessage(....
...
await client.SendMailAsync(message);
Я предполагаю, что мы все еще получаем эту ошибку, потому что не все вызовы стека имеют асинхронный оператор. Чтобы сделать это, мне пришлось бы сделать весь обработчик, который делает много других вещей, асинхронный, который не похож на хорошую идею просто для отправки почты.
Итак, у меня есть два вопроса:
Я правильно, что я не использую асинхр в каждом методе, который в конечном итоге вызывает SendMessage?
Как отправить асинхронную почту сейчас?
Я посмотрел ссылку, но она повторяет то, что я уже сделал. Проблема заключается в асинхронных параметрах, которые вызывают ошибку. – Velocedge
Если вы ссылаетесь на страницу, то обработчик http (ashx) не подходит. – Velocedge
Может ли кто-нибудь посоветовать мне по вопросу № 1 выше? ... # 2, а? – Velocedge