Ich arbeite an einer neuen API
, die schließlich eine sehr große Menge an Verkehr erhalten wird. Ich war zunächst unter dem Eindruck, dass ich wollen würde ConfigureAwait(false)
durch meine vollen async
/await
Stapel setzen, aber nach einigen application insights
tracing
zu debuggen versuchen, fand ich heraus, dass bestimmte Werte in den HttpContext
verloren gehen, wenn ich ConfigureAwait(false)
verwenden.In einer asynchronen ASP.NET-Web-API mit viel Datenverkehr: Wie wirkt sich ConfigureAwait auf false aus?
Kann jemand mit etwas hohem Verkehr API
Erfahrung sagen Sie mir noch etwas, das ich vermisse, das könnte betroffen sein durch ConfigureAwait(false)
wie ist es für einen Benutzer möglich, die Ausgabe von einem anderen Benutzerwunsch zu erhalten?
Was wären die Auswirkungen der Entfernung aller ConfigureAwait(false)
Aussagen in meinem API
?
"Ist es möglich, dass ein Benutzer die Ausgabe von einer anderen Benutzeranforderung erhalten" wäre ein großer Fehler. Und ich glaube nicht, dass ConfigureAwait das bricht. Ich weiß nicht, was für eine definitive Antwort Sie suchen, aber AFAIK .ConfigureAwait (false) ist so ziemlich das beste Verfahren für Webapi, es sei denn, Sie haben spezielle Thread Affinitätsfälle (was unwahrscheinlich ist) – Vivek
Es gibt nichts in meinem Code würde einem Benutzer erlauben, die Antwort eines anderen zu bekommen, aber weil ich einige Werte im HttpContext nach einem asynchronen Anruf verlor, sah ich das irgendwie als eine rote Fahne. – IWriteApps
Nun, es ist logisch, ohne die Configure (false) muss es zusätzliche Informationen halten, um Thread-Affinität zu erhalten - die dann mit der Konfiguration gelöscht werden kann. Wenn Sie immer noch besorgt sind, würde ich vorschlagen, genau herauszufinden, was entfernt wird. – Vivek