Обратите внимание, что вы должны установить Page.Async = true для использования SendAsync.
Пожалуйста, объясните причину этого. Непонимание того, что делает Page.Async, может стать причиной ваших проблем.
Извините, мне не удалось получить работающий пример, который воспроизвел проблему.
См. http://msdn.microsoft.com/en-us/magazine/cc163725.aspx (WICKED CODE: асинхронные страницы в ASP.NET 2.0)
РЕДАКТИРОВАНИЕ: Глядя на ваш пример кода, я вижу, что вы не используете RegisterAsyncTask()
и класс PageAsyncTask
. Я думаю, что вы должны сделать это при выполнении асинхронных задач на странице, где @Async
имеет значение true. Пример из журнала MSDN выглядит так:
protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask task = new PageAsyncTask(
new BeginEventHandler(BeginAsyncOperation),
new EndEventHandler(EndAsyncOperation),
new EndEventHandler(TimeoutAsyncOperation),
null
);
RegisterAsyncTask(task);
}
Внутри BeginAsyncOperation
, тогда, если вы отправите письмо асинхронно.