मैंने अपने एपीआई कॉल के लिए FileResult : IHttpActionResult
वेबपीआई रिटर्न प्रकार बनाया है। FileResult एक फ़ाइल को किसी अन्य यूआरएल से डाउनलोड करता है और फिर क्लाइंट को स्ट्रीम देता है।कथन का उपयोग करने में HttpClient कारण रद्द कर दिया गया है
शुरू में मेरी कोड के नीचे की तरह एक using
बयान था:
public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
try
{
HttpResponseMessage response;
using (var httpClient = new HttpClient())
{
response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new System.Net.Http.StreamContent(
await httpClient.GetStreamAsync(this.filePath))
};
}
return response;
}
catch (WebException exception)
{...}
}
हालांकि इस बीच-बीच में एक TaskCanceledException
का कारण होगा। मुझे पता है कि अगर एटीक्रोनियस कॉल समाप्त हो जाने से पहले एचटीपी क्लाइंट का निपटारा किया जाता है तो कार्य का राज्य रद्द हो जाएगा। हालांकि, जब से मैं का उपयोग में Content = new System.Net.Http.StreamContent(await httpClient.GetStreamAsync(this.filePath))
का उपयोग करता हूं, तो एचटीपी क्लाइंट को कार्य पूरा करने के बीच में निपटने से रोकना चाहिए।
यह कार्य क्यों रद्द हो जाता है? यह समय सीमा के कारण नहीं है क्योंकि यह सबसे छोटे अनुरोधों पर हुआ है और हमेशा बड़े अनुरोधों पर नहीं होता है।
public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
try
{
HttpResponseMessage response;
var httpClient = new HttpClient();
response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new System.Net.Http.StreamContent(
await httpClient.GetStreamAsync(this.filePath))
};
return response;
}
catch (WebException exception)
{...}
}
किसी भी विचार क्यों का उपयोग कर समस्या के कारण:
जब मैं using
बयान कोड को ठीक से काम निकाल दिया?
क्या आपने डीबगर का उपयोग करने का प्रयास किया है? इसे चरण-दर-चरण जांचना। – kevintjuh93
हाँ मेरे पास है। यह वास्तव में मदद नहीं करता है क्योंकि अपवाद को यहां नहीं फेंक दिया गया है लेकिन एक पूरी तरह से अलग स्थान पर है। यह ओविन पाइपलाइन में होता है जिसका उपयोग मैं प्रमाणीकरण कर रहा हूं और यह अगले अनुरोध का इंतजार कर रहा है। – Rafi
क्या 'टास्ककैंक्लेड एक्सेप्शन' में कोई आंतरिक अपवाद है? –