Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Browser-HTTP-Clients aktivieren jetzt standardmäßig HTTP-Streamingantworten. Folglich gibt die HttpContent.ReadAsStreamAsync-Methode nun ein BrowserHttpReadStream
anstelle eines MemoryStream zurück, da es keine synchronen Vorgänge unterstützt. Dies erfordert möglicherweise Updates für vorhandenen Code, der auf synchronen Datenstromvorgängen basiert.
Eingeführt in Version
.NET 10 Preview 3
Vorheriges Verhalten
In Browserumgebungen wie WebAssembly (WASM) und Blazor hat der HTTP-Client standardmäßig die gesamte Antwort gepuffert. Das HttpContent-Objekt enthielt ein MemoryStream-Element, es sei denn, Sie haben sich explizit für gestreamte Antworten über die WebAssemblyEnableStreamingResponse
-Option entschieden.
var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns MemoryStream
Neues Verhalten
Streaming-HTTP-Antworten sind jetzt standardmäßig aktiviert. Das HttpContent enthält nicht mehr ein MemoryStream. Stattdessen gibt HttpContent.ReadAsStreamAsync einen BrowserHttpReadStream
zurück, der keine synchronen Vorgänge unterstützt.
var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns BrowserHttpReadStream
Art der einschneidenden Änderung
Hierbei handelt es sich um einen Behavior Change.
Grund für Änderung
Diese Änderung unterstützt Anwendungsfälle rund um Streaming GetFromJsonAsAsyncEnumerable.
Empfohlene Aktion
Wenn Ihre Anwendung auf synchronen Streamvorgängen basiert, aktualisieren Sie den Code so, dass asynchrone Alternativen verwendet werden. Verwenden Sie die bereitgestellten Konfigurationsoptionen, um streaming global oder für bestimmte Anforderungen zu deaktivieren.
Verwenden Sie zum Deaktivieren des Streamings für einzelne Anforderungen Folgendes:
request.Options.Set(new HttpRequestOptionsKey<bool>("WebAssemblyEnableStreamingResponse"), false);
// or
request.SetBrowserResponseStreamingEnabled(false);
Um das Streaming global zu deaktivieren, legen Sie die Umgebungsvariable DOTNET_WASM_ENABLE_STREAMING_RESPONSE
fest, oder fügen Sie der Projektdatei Folgendes hinzu:
<WasmEnableStreamingResponse>false</WasmEnableStreamingResponse>
Hinweis
Ab .NET 10 Preview 3 ist die <WasmEnableStreamingResponse>
Eigenschaft noch nicht verfügbar. Es wird in einer zukünftigen Version verfügbar sein. Weitere Informationen finden Sie im GitHub-Issue.