第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

異步方法返回 500 Internal Server Error 以查看,即使它完成后

異步方法返回 500 Internal Server Error 以查看,即使它完成后

C#
寶慕林4294392 2021-11-07 19:42:40
我有一種發(fā)送電子郵件的方法,它使用SmtpClient. 在此方法中,我有以下內(nèi)容await smtpClient.SendMailAsync (mail);。調(diào)用是從我的控制器發(fā)出的,具體取決于具體情況:    [HttpPost]    [AllowAnonymous]    [ValidateJsonAntiForgeryToken]    public async Task<ActionResult> RegisterParticipant(RegisterIndexBaseVm attendee)    {        if (attendee == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);        if (ModelState.IsValid)        {            attendee.EventId = Int32.Parse(Session["id"].ToString());            using (var client = new HttpClient())            {                client.BaseAddress = new Uri(BaseUrl);                client.DefaultRequestHeaders.Clear();                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));                HttpResponseMessage Res = await client.PostAsync("Register/RegisterAttendee", new StringContent(JsonConvert.SerializeObject(Mapper.ToParticipant(attendee)), Encoding.UTF8, "application/json"));                if (Res.IsSuccessStatusCode)                {                    var EmpResponse = Res.Content.ReadAsStringAsync().Result;                    var result = JsonConvert.DeserializeObject<EmailTemplateDTO>(EmpResponse);                    if (result.NotError == false)return Json(new { success = false, message = Constants.CulqiResponses[result.Response] }, JsonRequestBehavior.AllowGet);                    if (string.IsNullOrEmpty(result.InvoiceInstitution))                    {                        if (result.SendEmail == true) MailHelper.SendMail(Enumerables.MailAction.EventRegisterSuccess, result);                        return Json(new { success = true }, JsonRequestBehavior.AllowGet);                    }在 Web 應(yīng)用程序中,我有一個(gè) AJAX 來執(zhí)行對(duì)使用參數(shù)的所述控制器的調(diào)用async: true,但我總是收到 500 錯(cuò)誤。我不太明白原因以及我應(yīng)該如何正確調(diào)用每個(gè)方法和類以獲得正確的結(jié)果。答案如下:An asynchronous module or handler completed while an asynchronous operation was still pending.但是發(fā)送電子郵件沒有任何不便。發(fā)送電子郵件的方法必須具有以下內(nèi)容public static async void SendMail,我不希望控制器有任何真正的回應(yīng)。
查看完整描述

1 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

在這篇文章中所建議的:


var originalSynchronizationContext = SynchronizationContext.Current;

try

{

    SynchronizationContext.SetSynchronizationContext(null);


    //... call your method here!

}

finally

{

    SynchronizationContext.SetSynchronizationContext(originalSynchronizationContext);

}

這是因?yàn)楫惒椒椒〞?huì)跟蹤它們的完成情況,甚至是異步無效。他們通過在開始時(shí)注冊(cè) SynchronizationContext 并在返回時(shí)標(biāo)記操作完成來實(shí)現(xiàn)這一點(diǎn)。ASP.NET 跟蹤所有創(chuàng)建的操作并要求它們?cè)谀牟僮鞣祷刂叭客瓿?,否則它會(huì)向 HTTP 客戶端返回錯(cuò)誤。


查看完整回答
1 反對(duì) 回復(fù) 2021-11-07
  • 1 回答
  • 0 關(guān)注
  • 386 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)