Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AggregateException "One or more errors occurred.An error occurred while sending the request."

Tags:

c#

wcf

httpclient

I tried to post a file to an API rest from my WCF .Net framework 4.5. Here is my code:

public string CreateConclusion(string[] instanceUIDs)
    {
        var root = @"C:\";
        string filename = "1.2.840.114257.1.9.1245.56421.52314.1119854.01248.dcm";

            using (var client = new HttpClient())
            {
                var stream = new FileStream(root + filename, FileMode.Open);

                using (var content =
                    new MultipartFormDataContent("Upload----" + DateTime.Now.ToString(CultureInfo.InvariantCulture)))
                {
                    content.Add(new StreamContent(stream), "fileToUpload", filename);

                    using (var message = client.PostAsync("https://localhost:44343/api/ConclusionReports/UploadFile", content).Result)
                    {
                        var input = message.Content.ReadAsStringAsync();

                        return !string.IsNullOrWhiteSpace(input.Result) ? Regex.Match(input.Result, @"http://\w*\.directupload\.net/images/\d*/\w*\.[a-z]{3}").Value : null;
                    }
                }
            }

    }

It doesn't work and throw an exception: "One or more errors occurred.An error occurred while sending the request."

Does anyone can help me to solve this problem? Thank you in advance

like image 777
Viet Nguyen Avatar asked Jul 26 '18 07:07

Viet Nguyen


1 Answers

An aggregate exception can always be unwrapped to discover the real cause. Try to write your client call inside a try-catch like this:

    try {


    //Some risky client call that will call parallell code / async /TPL or in some way cause an AggregateException 

   }
   catch (AggregateException err){
    foreach (var errInner in err.InnerExceptions) {
     Debug.WriteLine(errInner); //this will call ToString() on the inner execption and get you message, stacktrace and you could perhaps drill down further into the inner exception of it if necessary 
     }   
   }
like image 63
Tore Aurstad Avatar answered Nov 15 '22 06:11

Tore Aurstad