HTTPClient Buffer Exceeded 2G; Kann nicht mehr Bytes in den Buffer schreiben

Die neueste Version der Walmart API. Ich rufe an, um mithilfe von HttpClient eine Liste der Freigabeelemente abzurufen. Bei anderen Anfragen funktioniert es einwandfrei, aber diese ist so groß, dass der HTTPRequest-Puffer kaputt geht.Odd auch, dass es sich um einen REQUEST-Pufferfehler und nicht um einen RESPONSE-Fehler handelt, da die Anforderung nur die URL ist.

Ausnahmeinformationen:

 Cannot write more bytes to the buffer than the configured maximum buffer size: 2147483647. (System.Net.Http)

at System.Net.Http.HttpContent.LimitMemoryStream.CheckSize (Int32 countToAdd) \ r \ n bei System.Net.Http.HttpContent.LimitMemoryStream.Write (Byte [] Puffer, Int32 Offset, Int32 Count) \ r \ n bei System.Net.Http.StreamToStreamCopy.TryStartWriteSync (Int32 bytesRead) \ r \ n bei System.Net.Http.StreamToStreamCopy.StartRead () \ r \ n --- Ende der Stapelverfolgung von der vorherigen Position, an der die Ausnahme ausgelöst wurde --- \ r \ n um System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task-Task) \ r \ n um System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task-Task) \ r \ n um System.Runtime.CompilerService1.GetResult()\r\n at Wal_Mart_Crawler.NET_IO.<walMart_Special_Feed_Lookup>d__4.MoveNext() in c:\\users\\user\\documents\\visual studio 2015\\Projects\\Wal-Mart_Inventory_Tracker\\Wal-Mart_Crawler\\NET_IO.cs:line 65\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter 1.GetResult () \ r \ n bei Wal_Mart_Crawler.Special_Feeds.d__2.MoveNext () in C: \ Benutzer \ Benutzer \ Dokumente \ Visual Studio 2015 \ Projekte \ Wal-Mart_Inventory_Tracker \ Wal-Mart_Crawler \ Special_Feeds.cs: Zeile 22

(für die Neugierigen ist Zeile 22):

 API_Json_Special_Feeds.RootObject Items = await net.walMart_Special_Feed_Lookup(specialFeedsURLs[i].Replace("{apiKey}", Wal_Mart_Crawler.Properties.Resources.API_Key_Walmart));
 //which uses HttpClient to call the API

Zunächst funkelten meine Augen ein wenig, als ich "konfiguriert" sah, was bedeutet, dass ich es ändern kann, oder? Ich laufe immerhin in x64 - könnte in der Lage sein, 2G @ zu brech kann nicht herausfinden, wie.

Auf SO nachlesen, festgestellt, dass ich das Streaming deaktivieren sollte. Versucht:

 var r,esponse = await http.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);

...no Bueno.

Found an AllowReadStreamBuffering Einstellung für WebRequest - kann offenbar keine für HttpClient finden.

Ich kann nicht steuern, wie viele Daten ich erhalte - das ist auf Walmart. Ich bin auch durch meinen geschrumpften Kopf eingeschränkt, was ich mit dem Antwort-Stream tun soll, da er direkt deserialisiert wird:

   var response = await http.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
   return JsonConvert.DeserializeObject<API_Json_Special_Feeds.RootObject>(result);

Also auch wenn ichkönnte Brechen Sie die Antwort auf, ich stecke fest, weil ich nicht glaube, dass ich Teildaten zum Deserialisieren einspeisen kann.

Frage Wie kann ich entweder den Puffer auf über 2 GB erhöhen oder auf andere Weise verhindern, dass die Puffergröße die Ausnahmebedingung überschreitet?

Ich hoffe, es ist eine weitere einfache Lösung, die mein müdes, ignorantes Gehirn nicht herausfinden kann. Wie immer - ein herzliches Dankeschön für Ihre Zeit und im Voraus für jede Hilfe, die Sie leisten können.

Response Headers:

 StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
 X-Mashery-Responder: prod-j-worker-us-west-1c-63.mashery.com
 transfer-encoding: chunked
 Connection: keep-alive
 Date: Sat, 10 Sep 2016 00:57:38 GMT
 Server: Mashery
 Server: Proxy
 Content-MD5: BvJMDJiZPUvmAxxmwKGSog==
 Content-Type: application/json; charset=utf-8
 Last-Modified: Fri Sep 09 15:31:08 PDT 2016
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage