在ASP.NET页面中调用SendAysnc

本文关键字:调用 SendAysnc ASP NET | 更新日期: 2023-09-27 18:00:50

我想发送一些邮件作为对页面点击的响应。我希望页面不要等待邮件发送,因此使用SendAsync。在测试中,结果是"<%@Page Async="true"…%>",例如

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CallbackHandler.aspx.cs" Inherits="MyWebRole.CallbackHandler" Async="true" %>

需要。然而,即使调用了SendAsync并发送了电子邮件,我仍然会收到一个500的错误。这是我使用的。在此期间,我已恢复到"发送"(使用Async="true"(

sc.SendCompleted += ((sender, e) =>
{
    if (e.Error == null)
    {
        newPayment.transmitted = db.GetSQLDate();
        db.SubmitChanges();
    }
    else
    {
        newPayment.exceptions = e.Error.Message + Environment.NewLine + e.Error.StackTrace;
        db.SubmitChanges();
    }
});
sc.SendAsync(mm, null);

上演这出戏的正确方式是什么?

在ASP.NET页面中调用SendAysnc

我建议将其发布到某种队列中,并在另一个服务的单独线程中处理该队列。