Я делаю это все время, и после нескольких лет работы я предлагаю (2) кратное решение вашей проблемы:
- Рефакторинг фактическая отправка кода электронной почты (Материал System.Net) в службу WCF или отдельную библиотеку DLL'способ, где вы не подключаете никаких обратных вызовов.
Вы можете сказать, что вам нужно знать, если что-то пошло не так при отправке электронного письма.Пусть служба WCF, которая отправляет электронные письма, обрабатывает это.Зайдите в сервис.В конце концов, это все, что вы действительно делали, это входить в систему.Если вам нужно привыкнуть к рабочему процессу в случае сбоя электронной почты, есть способы пометить ваш ASP.NET, но я думаю, вы обнаружите, что, как только служба отправки электронных сообщений станет стабильной, у вас будет очень мало проблем.
Фактически, я использовал этот точный метод в течение многих лет, используя службу ASP.NET для отправки электронных писем и отправки 10 тысяч различных писем, и у меня никогда не было проблем с этим проектом «забей и забудь».
И, наконец, установка страницы Async=True
заставляет страницу работать в целом синхронно , в конце концов, блокируя основной поток до завершения всех асинхронных процессов.Это может замедлить загрузку страниц и, как правило, нежелательно.