我的服務(wù)中有以下代碼: // add Txt record to DNSimple with verification text await CreateDomainRecordAsync(domain, new DomainRecordDto { //.... }); // verify domain on Office365 await _office365domainService.VerifyDomainAsync(domain);第一個操作是調(diào)用端點 #1(域注冊者)并將 TXT 記錄添加到域。第二個操作是調(diào)用端點#2(Office365),它驗證域注冊器中是否存在TXT記錄。此代碼不起作用,我在第二次操作時遇到異常,即 TXT 記錄不存在。我創(chuàng)建了測試代碼: public IActionResult LongOperation() { Thread.Sleep(10 * 1000); return Ok(); } public IActionResult Test() { return Ok(); }并稱之為: using (HttpClient httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri("http://test***.azurewebsites.net/home/"); await httpClient.GetAsync("LongOperation"); } using (HttpClient httpClientLocal = new HttpClient()) { httpClientLocal.BaseAddress = new Uri("https://localhost:44366/Home"); await httpClientLocal.GetAsync("Test"); }它按我的預(yù)期工作,調(diào)用第一個方法,在執(zhí)行“LongOperation”時等待 10 秒,然后調(diào)用“Test”方法。為什么我的帶有域的真實代碼不等待以及如何正確執(zhí)行?
1 回答

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊
你甚至可能沒有異步等待的問題。
第一個操作執(zhí)行異步并且您等待,但這是 DNS 配置更改 - 由于多個 DNS 緩存層,它可能在幾分鐘內(nèi)不可見 office 365。這里的錯誤假設(shè)是:
DNS 更改立即可見
這是一個異步/等待問題。
通常對于像 DNS 這樣的東西,您可能希望每 15 秒重試一次并在一段時間后放棄,或者采用處理更長超時時間的工作流程。這與異步/等待無關(guān) - 這與服務(wù)器可能延遲交付的電子郵件相同。它是協(xié)議的一部分。
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消