Warum gibt mir diese HttpClient-Verwendung einen Fehler "Kann nicht auf ein entsorgtes Objekt zugreifen." Fehler?

8

Ich habe den Code ein wenig vereinfacht, aber im Grunde habe ich immer noch "Kann auf ein entsorgtes Objekt nicht zugreifen". Fehler und ich kann nicht herausfinden, warum?

Ich habe mehrere Aufgaben gleichzeitig ausgeführt, die ein GET durchführen, dann einige HTML analysieren und dann einen POST durchführen, abhängig von den Ergebnissen des GET.

Die Methode, in der sich dieser Code befindet, gibt ein Ereignisobjekt mit Ergebnissen zurück, so dass ich denke, dass ich nicht warten kann, weil die Methode void zurückgeben müsste?

loginHTMl = loginPostResult.Content.ReadAsStringAsync (). Ergebnis ist die Zeile, die den Fehler

erzeugt %Vor%

StackTrace.

%Vor%     
jamie 18.04.2016, 15:45
quelle

2 Antworten

17

Nach ein bisschen Recherche habe ich das Problem gefunden. Der HttpClientHandler wird nach der ersten Anfrage entsorgt. Sie müssen Ihr System anweisen, den Handler nicht zu entsorgen.

Ändern Sie Ihre Verwendung, um false zum Konstruktor hinzuzufügen.

%Vor%     
CathalMF 18.04.2016, 16:20
quelle
3

Es empfiehlt sich, die HttpClientHandler-Instanz erneut zu verwenden, um eine Entsorgung zu verhindern.

Auch persönlich bevorzuge ich eine klarere Syntax mit Minimierung von Aufrufen von Task.Result.

%Vor%     
jonny.novikov 19.04.2016 12:56
quelle

Tags und Links