/ / HttpClient टास्क रद्द कर दिया गया - एसिंक्रोनस, टास्क, डॉटनेट-httpclient

HttpClient कार्य रद्द कर दिया गया था - asynchronous, कार्य, dotnet-httpclient

मैं नीचे दिए गए कोड का उपयोग करके एक संदेश को REST सेवा में भेजने के लिए HttpClient का उपयोग करने का प्रयास कर रहा हूं:

public void LogMessage(string operationURI, string message, EventLogEntryType logEntryType)
{
using (var client = new HttpClient())
{
var cancellationToken = new CancellationToken();
client.SendAsync(GetRequest(operationURI), cancellationToken).ContinueWith(
cw =>
{
var response = cw.Result; //(I get an error on this line)
if (!response.IsSuccessStatusCode)
{
LogMessageLocal(message, logEntryType);
}
});
}
}

नोट: GetRequestMessage एक HttpRequestMessage देता है।

लेकिन मुझे यह कहते हुए एक त्रुटि मिलती है कि "एक कार्य रद्द कर दिया गया था।"

कोई विचार?

उत्तर:

जवाब के लिए 2 № 1

मेरा मानना ​​है कि यह तब हो सकता है जब टाइमआउट पार हो जाए। आप अपनी जाँच कर सकते हैं समय समाप्त, और लॉग करें कि अपवाद से पहले यह बकाया था कि यह कब पार हो रहा है


जवाब के लिए 0 № 2

SendAsync खत्म होने से पहले HttpClient का निपटान किया जाता है। यह एक कारण बनता है TaskCanceledException फेंक दिया जाना।

  1. जोड़ना async कीवर्ड LogMessage.
  2. जोड़ना await कीवर्ड SendAsync और इसके परिणाम पर सेट करें var response.
  3. आप जो भी करना चाहते हैं उसका इंतजार करने के बाद प्रतिक्रिया के साथ करें।